各种基础协议

释放双眼,带上耳机,听听看~!

了解几个概念:

1.

HTTP 协议:
基于TCP协议,
超文本传输协议,对应于应用层,用于如何封装数据.。
也就是在底层是基于socket, 
http只不过是在收发数据的时候定义了很多规则,http头信息之类。

TCP/IP协议:关注的是客户端与服务器之间的数据传输是否成功(三次握手,传输失败会重发)。传输层协议,
主要解决数据如何在网络中传输;

TCP/UDP 协议:传输控制协议,对应于传输层,主要解决数据在网络中的传输。

IP 协议:对应于网络层,同样解决数据在网络中的传输。

TCP协议:对应于传输层,
是基于网络层的IP协议。

socket:
属于传输层协议,
是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。

Servlet:使用http协议在服务器与客户端之间通信的技术。是Socket的一种应用。

传输数据的时候只使用 TCP/IP 协议(传输层),如果没有应用层来识别数据内容,传输后的协议都是无用的。

2.

http连接:“短链接”,
即客户端向服务器端发送一次请求,服务器端响应后连接即会断掉。只能走TCP

socket连接:是TCP/IP协议的基本操作单元。socket能走TCP,还能走UDP,socket有个特点是"长链接",也就是说除非双方主动断开,否则,他不会自动断开,不过缺点是他太博爱了,来者不拒,而且还不好检查,所以,为了保持服务器资源的最大利用率,通常我们会要求双方通过定时的心跳方式来确认长链接的有效性,只要心跳不存在,服务器就可以及时剔除掉这些死链接.

3.

http的请求(request)和响应(response)分别被服务器封装成HttpServletRequest和HttpServletResponse对象。Http协议的内容可以通过这两个对象中的方法得到。在web工程中的类继承HttpServlet类后,服务器调用doGet/doPost方法时,封装好的HttpServletRequest和HttpServletResponse对象会作为参数传递给doGet/doPost方法。

4.TCP的三次握手:

第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。
理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去(也就是长连接)。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客户端交互,最终确定断开)


5.Socket建立网络连接步骤:

建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。
Socket之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。
1。服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。
2。客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
3。连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

给TA打赏
共{{data.count}}人
人已打赏
安全运维

故障复盘的简洁框架-黄金三问

2021-9-30 19:18:23

安全运维

OpenSSH-8.7p1离线升级修复安全漏洞

2021-10-23 10:13:25

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索