java基础--笔记20


当需要实现的接口的中的方法很多时,不需要全部实现所有方法时,可以通过过渡类,用一些类去实现这个接口,每一类中有一个实现的方法有具体内容,其他都是空函数书体。需要哪个方法,就去继承哪个有具体方法的类。

查询API时如果类没有提供构造函数,那么一定有静态方法,如果该类中还有非静态方法,那么一定会提供一个静态方法可以获取到其对象。

用来发送的数据包,都带有ip地址。

管道流的最大特点是接受端可以和发送端想连。

了解就可以了:
1.物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。 
2.数据链路层:主要将从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装。常把这一层的数据叫做帧。在这一层工作的设备是交换机,数据通过交换机来传输。 
3.网络层:主要将从下层接收到的数据进行IP地址(例192.168.0.1)的封装与解封装。在这一层工作的设备是路由器,常把这一层的数据叫做数据包,IP协议。 
4.传输层:定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。 
5.会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名) 
6.表示层:主要是进行对接收的数据进行解释、加密与解密、压缩与解压缩等(也就是把计算机能够识别的东西转换成人能够能识别的东西(如图片、声音等)。 
7.应用层: 主要是一些终端的应用,比如说FTP(各种文件下载),WEB(IE浏览),QQ之类的(可以把它理解成我们在电脑屏幕上可以看到的东西.就是终端应用)以及http。


网络通讯所需要的要素
1,ip地址:网络设备的数字标识
     主机名---ip地址对应。必须要保证网络中的ip或者主机名的唯一性

2,端口:主机中的软件的数字标识,主机会收到的数据,而数据需要应用程序解析。  应用程序需要通过数字进行标识,这个标识就是端口,具体也可以称之为逻辑端口。

访问一台主机时,需要明确主机地址和端口。
格式:主机(ip地址或者主机名称) : 端口
端口范围 1~65535    而1~1024通常为系统保留端口,尽量不要占用

3,协议:通信的规则,数据该以何种方式传输。
     传输层 : TCP  UDP

UDP:数据报文包协议
     1,将数据封装成了数据包,每一个包的大小都控制在64K之内。
     2,面向无连接,不需要建立连接。
     3,传输速度快。
     4,不可靠。

TCP:传输控制协议
     1,必须建立连接,无连接,不通信。
     2,通过内部的三次握手完成的连接畅通。
     3,这种传输速度稍慢(需要三次握手,慢在连接),因为创建连接需要时间。
     4,很可靠。

三次握手:客户端发送数据到服务端为第一次,服务端接受数据为第二次,服务端响应客户端反馈数据为第三次。这样就能确定连接畅通。

总的来说,UDP,面向无连接,只管发送和接受数据,不管对方是否在线,只要有数据就可以接受和发送,传输速度很快,但不可靠,要是对方不在线,就可能会造成数据丢失。而TCP,必须双方都在线的情况下才能进行通信,传输速度对比UDP稍慢,但是很可靠。


UDP    接受,发送数据步骤
发送:
     1,建立端点socket服务
     2,明确要传送的数据
     3,将数据存储到数据包中,在数据包上明确地址和端口
     4,将数据包发送
     5,关闭服务

接收:
     1,建立端点socket服务
     2,接受数据,在接受数据前先创建一个数据包来存放接受到的数据。
     3,通过数据包对象的方法解析数据中的各种信息。
     4,关闭服务。
一般,接受端可以不用关闭服务。

TCP的接受和发送是在客户端和服务端之间进行的。
需要注意的是,TCP中数据的传输底层类似管道流,也就是输入输出对接上了。当客户端通过输出流向服务端发送数据数据时,服务端
获取到客户端的流对象,通过输入流读取客户端的数据。然后通过客户端的输出流反馈给客户端数据。所以,底层的流对象是由客户端底层来创建的。
发送:
     1,创建客户端
     2,发送数据,通过底层Socket输出流
     3,可以增加Socket输入流,获取服务端反馈数据
     4,关闭资源

接收:
     1,创建服务端
     2,接收数据,获取客服端对象,通过客户端对象创建输入流,读取数据
     3,可以增加反馈信息,用输出流。
     4,可以不用关服务端

服务端在和客户端连接上后,一直等待是因为一直在读取客户端的数据,要是客户端一直不发数据,就处于一直等待状态。等待是因为阻塞状态,accept()和readLine会造成等待。


http 超文本传输协议。
访问时,不写ip写localhost 在电脑上默认的为127.0.0.1 也就是自己的电脑。

请求方式 GET    POST
GET提交会将用户提交信息封装在请求行
POST提交会将用户提交信息封装在请求体
协议版本  HTTP/1.1    HTTP/1.0
HTTP/1.0 一次连接只能由一次请求
HTTP/1.1 一次连接可以有多次请求
目前浏览器在访问服务器时,当连接上了后,第一次请求是获得html页面,并无图像之类的,目的是为了快速响应,第二次请求才会有图片传过来。而且在传输的过程中,都是大包过来的,然后解压缩。这就解释了上传和下载的速度快慢问题了,在你上传时,为什么这么快,是因为在你上传时,不管是百度云还是别的什么,都会先将你的文件进行高度压缩,然后上传,要不然会很慢,因为服务器那边会限速的,以免影响服务器正常运行。当你上传过去后,存在服务器的也是高度压缩的文件。
关压缩,是一套精密的算法实现的,原理就是将二进制数进行处理,处理方式就是看相同位的二进制有多少个,例如连续有3个1,就写31来表示有三个1。在解压时,利用算法进行解压。这种压缩编码方式叫游程编码。
还有霍夫曼编码(编码树)和算术编码,比较高效的压缩方式。

浏览器在向服务器发送请求时,包含的内容:
请求行: 请求方式  访问的资源路径  协议版本
请求头: 属性信息
空行(为了区分请求行和请求体)
请求体

网络开发架构。
C/S:client  server
特点:
1,客户端和服务端都需要进行开发。
2,需要将客户端部署到用户处。
3,维护起来较为麻烦。
4,将部分运算分离到客户端执行。

B/S:browser server
1,只需要开发服务端。客户端是浏览器。
2,不需要在用户处部署任何内容。因为内容都在服务端。
3,客户端不需要维护。只需要维护服务端。
4,所有的运算都在服务端。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值