对于HTTP协议,什么是长连接和短连接?

HTTP协议的短连接和长连接

HTTP协议的长连接和短连接,实际上是TCP协议的长连接和短连接。
我们将分HTTP的版本来讨论这个问题。

在HTTP/1.0

  在HTTP/1.0中默认使用的是短连接,也就是说,客户端和服务器每一次进行一个HTTP操作,就建立一次HTTP连接,任务结束就中断连接。当客户端浏览器访问的某一个HTML或是其他类型的Web页中包含有其他Web资源(如JS文件、图片文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话,也就是重新进行TCP连接。

网络上的会话指的是什么?
在计算机网络上的会话,如TCP的三次握手就创建了一个会话,TCP的四次挥手关闭连接就是关闭会话。

在HTTP/1.1

  从HTTP/1.1起,默认使用的是长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头入这行代码

 Connection:keep-alive

  在使用长连接的情况下,当一个网页打开完成后,客户端和服务器直接用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保存连接,它有一个保存时间,可以在不同的服务器软件(如Apache)中设定这个时间。
  实现长连接需要客户端和服务端都支持长连接。

关于长连接和短连接的优缺点

短连接

  优点:短连接对于服务器来说,存在的连接都是有用的连接,不需要做额外的控制手段,因此短连接对服务器来说管理比较简单。

  缺点:如果客户请求频繁,短连接将在TCP的简历和关闭操作上浪费时间和宽带。

长连接

   长连接可以省去较多的TCP简历和关闭的操作,减少浪费,节约时间。对应频繁请求支援的客户来说,适合长连接。不过在长连接中存在一个问题,存活功能的探测周期太长,还有就是它只是探测TCP连接的存活,遇到恶意连接时,保活功能不够使了。在长连接的应用场景之下,客户端一般不会主动关闭它们之间的连接,Client与Server直接的连接如果一直不关闭的话,就会存在一个问题,随着客户端连接越来越多,Server早晚都有扛不住的时候,这个时候Server端需要采取一些策略,如关闭一些长时间没有读写事件发生的连接,这样可以避免一些恶意连接导致Server端服务受损。
  而如果条件允许的话就可以以客户端机器为颗粒度,限制每个客户端的最大长连接数,这样可以完全避免某个蛋疼的客户端连累后端服务。

短连接和长连接的操作过程是怎么样的?

短连接的操作步骤是:
建立连接——数据传输——关闭连接,这样不断循环。

长连接的操作步骤是:建立连接——数据传输——(保存连接)——数据传输——关闭连接。这样不断循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值