美文网首页学习准备
HTTP如何处理长连接

HTTP如何处理长连接

作者: 钢牙仔 | 来源:发表于2018-12-29 14:49 被阅读24次

短连接:

连接——>传输数据——>关闭连接

HTTP是无状态(什么是无状态?后面会解释)的,浏览器和服务器每进行一次通信,就建立一次连接,但通信结束就中断连接,这就是短连接。

也可以这样说:短连接是指socket连接后,发送接收完数据后马上断开连接。

无状态的意思是:HTTP协议不具备保存之前发送过的请求或响应的功能。每次的请求是相互独立的,第n次的请求结果和第n-1次、第n+1次的请求结果不会互相影响,服务器也不会保存客户端的状态,客户端必须每次带上自己的状态去请求服务器。

但是:

  1. 通过设置cookie和session,现在的网络请求其实是有状态的

  2. 在没有状态的http协议下,服务器会保存客户端每次网络请求对数据的修改,但这跟保留每次访问的数据是不一样的,保留的只是会话产生的结果,而没有保留会话

长连接:

连接——>传输数据——>保持连接——>传输数据——>......——>直到某一方关闭连接(一般是客户端关闭连接)

长连接是指建立连接后,不管是否使用都保持连接,但安全性较差

HTTP长连接与TCP/IP长连接的关系

HTTP的长连接和短连接本质上是TCP的长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传输数据包,使得接收方收到发送方的所有包,并且顺序与发送顺序一致。TCP协议是可靠的、面向连接的。

在HTTP1.0中默认使用短连接。

从HTTP1.1开始,默认使用长连接。使用长连接的HTTP协议,会在响应头加上这行代码:

Connection:keep-alive

keep-alive不会使客户端和服务器永久保持连接,它会有一个保持时间,可以在不同的服务器中设定这个时间。实现长连接需要客户端和服务器都支持长连接。

长连接和短连接比较:

连接类型 优点 缺点
短连接 管理较为简单,存在的连接都是有用的连接,不需要额外的控制手段。 如果客户端请求频繁,将在TCP的建立h额关闭操作上浪费较多的时间和宽带。
长连接 省去较多的TCP建立和关闭操作,减少浪费,节约时间。 随着客户端的连接越来越多,服务器会保持过多的连接。解决方法就是:1.关闭一些长时间没有发生请求的连接;2.限制每个客户端的最大连接数,避免恶意的客户端拖垮服务器。

以上内容参考自:

腾讯云:https://cloud.tencent.com/document/product/214/4149

知乎:https://www.zhihu.com/question/22677800

相关文章

  • HTTP如何处理长连接

    短连接: 连接——>传输数据——>关闭连接 HTTP是无状态(什么是无状态?后面会解释)的,浏览器和服务器每进行一...

  • HTTP与HTTPS

    一.HTTP和HTTP1.1的区别 1.长连接 HTTP1.1支持长连接和请求的流水线处理,在一个TCP连接上可以...

  • 3、HTTP的理解

    如何用HTTP实现长连接? 在HTTP1.0和HTTP1.1协议中都有对长连接的支持。其中HTTP1.0需要在re...

  • 学习tomcat——如何建立连接,处理请求

    tomcat如何建立连接,处理请求 学习探讨tomcat如何建立网络连接协议,并处理客户端过来的请求 建立http...

  • http的长连接和短连接(TCP连接)

    HTTP1.0协议不支持长连接从HTTP1.1协议以后,连接默认都是长连接 网络上说HTTP分为长连接和短连接,其...

  • http 长连接

    一般情况下,我们了解到http连接 创建时涉及3次握手,如果每次连接都只用于一次http请求,效率就很低,所以后来...

  • Http长连接

    曾经我面试过一位学生,刚好问到HTTP的长短链接,于是我问他短连接的适用场景,他跟我说,WEB网站一般都使用短连接...

  • Go http.Server处理长连接

    如果让我们自己来实现一个http server,大部分同学都可以写出以下实现: 主要步骤就是: 监听一个端口 一个...

  • 分析 HTTP,TCP 的长连接和短连接以及 sock

    HTTP 协议与 TCP/IP 协议的关系 HTTP 的长连接和短连接本质上是 TCP 长连接和短连接。HTTP ...

  • HTTP长连接和短连接

    HTTP的长连接和短连接本质上是TCP长连接和短连接。 1. 什么是长连接、短连接? 在HTTP/1.0中默认使用...

网友评论

    本文标题:HTTP如何处理长连接

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