美文网首页iOS面试题
HTTP 长连接和短连接

HTTP 长连接和短连接

作者: 后浪普拉斯 | 来源:发表于2019-05-28 18:10 被阅读14次

1、HTTP协议和TCP/IP协议的关系?

HTTP协议长连接和短连接本质上是TCP的长连接和短连接。
HTTP 属于应用层协议,是建立在TCP协议基础上的,通过TCP建立与服务器的连接通道。
TCP是传输层协议,解决在IP协议上数据包的传输(可靠的面向连接的)。
IP是网络层协议,解决路由和寻址问题。

2、HTTP协议是无状态的?

无状态是指HTTP协议对事务处理没有记忆能力,服务器不知道客户端的状态,每次来都需要新连接请求。

3、HTTP长连接和短连接

HTTP1.0时协议默认是短连接,客户端和服务端进行一次http请求就需要建立一次连接,结束后就中断连接。我们再访问网页中含有其他的web资源(图片、js文件),每次去访问这样一个web资源,浏览器就会新建立一个http会话。
HTTP1.1时协议默认就是长连接了,保持其连接的持续性,在使用http长连接的时候,http相应的响应头会有Connection:keep-alive.
长连接,当浏览器打开网页之后,客户端和服务端之间用于传输HTTP数据的TCP连接通道不会关闭,客户端再次访问服务器时会继续使用已经存在的连接,但是这个Connection:keep-alive也不会永远保持连接,保持的时间是有服务器端设定的,而实现这种长连接是服务端和客户端都支持才行的。
所以HTTP协议的长连接和短连接实质上是TCP协议的长连接和短连接。

4、TCP连接

连接建立需要三次握手,释放需要四次挥手

三次握手:
第一次: 
客户端 - - > 服务器
客户端告诉服务端需要建立连接,服务器知道了客户端要建立连接了
第二次: 
客户端 < - - 服务器
服务端告诉客户端收到建立连接请求,客户端知道服务器收到连接请求了 
第三次: 
客户端 - - > 服务器
客户端告诉服务端收到建立连接的请求回应,服务器知道客户端收到了自己的回应
此时客户端与服务器已经建立了连接.
四次挥手:
第一次:
客户端 - - > 服务器 
客户端告诉服务器端断开连接,并停止发送数据,服务端知道客户端要断开连接
第二次: 
客户端 < - - 服务器
服务端告诉客户端收到断开连接的请求,客户端等待最终确认断开连接报文,服务端发送为发送完成的数据,客户端知道服务段收到断开连接请求
第三次: 
客户端 < - - 服务器 
服务端告诉客户端传输数据完成之后,发送断开连接的确认请求,客户端知道断开连接的确认报文。
第四次: 
客户端 - - > 服务器
客户端向服务端发送收到服务端TCP断开连接报文,回复服务端断开请求
断开TCP连接

敬请批评指正

相关文章

网友评论

    本文标题:HTTP 长连接和短连接

    本文链接:https://www.haomeiwen.com/subject/xnkdtctx.html