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端服务受损。
  而如果条件允许的话就可以以客户端机器为颗粒度,限制每个客户端的最大长连接数,这样可以完全避免某个蛋疼的客户端连累后端服务。

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

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

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

对于HTTP协议,什么是长连接和短连接?相关推荐

  1. 转---谈谈HTTP协议中的短轮询、长轮询、长连接和短连接

    作者:伯乐在线专栏作者 - 左潇龙 http://web.jobbole.com/85541/ 如有好文章投稿,请点击 → 这里了解详情 引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此 ...

  2. tcp协议中的长连接和短连接服务器,谈谈HTTP协议中的短轮询、长轮询、长连接和短链接...

    undefined 在之前总结 WebSocket 的时候就已经提到过短长轮询了~~今天看公众号文章,又把长短连接引进来一起分析.感觉这种总结很棒,那么我们一起看看呗 长短连接 听说长短连接的话,应该 ...

  3. tcp、http协议的长连接和短连接

    转载:http://www.cnblogs.com/onlysun/p/4520553.html 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当 ...

  4. 谈谈HTTP协议中的短轮询、长轮询、长连接和短连接

    来源:伯乐在线专栏作者 - 左潇龙 链接:http://web.jobbole.com/85541/ 引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码.在研究一个项目 ...

  5. 误人子弟的网络,谈谈HTTP协议中的短轮询、长轮询、长连接和短连接

    引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码.在研究一个项目的时候,源码里面用到了HTTP的长轮询.由于之前没太接触过,因此LZ便趁着这个机会,好好了解了一下HT ...

  6. http协议之长连接与短连接服务器,长连接短连接

    HTTP 协议与 TCP/IP 协议的关系 HTTP 协议是应用层的协议,而 TCP 协议是传输层的协议,IP 协议是网络层的协议. IP 协议主要解决网络路由以及寻址等问题,而 TCP 协议主要解决 ...

  7. 转载的--------------------HTTP协议中的短轮询、长轮询、长连接和短连接

    最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码.在研究一个项目的时候,源码里面用到了HTTP的长轮询.由于之前没太接触过,因此便趁着这个机会,好好了解了一下HTTP的长长 ...

  8. TCP协议的长连接和短连接详解

    一.前言 TCP在真正开始进行数据传输之前,Server 和 Client 之间必须建立一个连接.当数据传输完成后,双方不再需要这个连接时,就可以释放这个连接. TCP连接的建立是通过三次握手,而连接 ...

  9. HTTP协议的长连接与短连接

    点击查看原文:查看原文 1.HTTP协议与TCP协议的关系?? HTTP的长连接和短连接实质上是TCP的长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议. IP层: ...

  10. HTTP协议中的长连接和短连接(keep-alive状态)

    什么是长连接 长连接还是短连接 相比于短连接,长连接更节省资源.如果每发送一条消息就要创建链路.发起握手认证.关闭链路释放资源,会损耗大量的系统资源.长连接只在首次创建时或者链路断连重连才创建链路,链 ...

最新文章

  1. 线性回归:不能忽视的三个问题
  2. Lamp的搭建--centos6.5下安装mysql
  3. TypeScript里数组foreach和map操作的区别
  4. python:封装连接数据库方法
  5. Java虚拟机JVM的内部体系结构
  6. matlab为自定义后缀文件设置图标_【V3.0更新】| 这可能是全网最好用的文件管理神器了......
  7. 《Ext JS权威指南》——1.2节JSON概述
  8. Logistic regression Newton’s method
  9. 基于android预约功能,基于Android的银行业务预约系统的设计与实现
  10. LeetCode20.有效的括号 JavaScript
  11. 牛客 小a与星际探索 bfs
  12. HGOI 20190816 省常中互测8
  13. 通过反射获取类的完整结构(1)--属性方法
  14. 计算机信息技术教程(笔记)
  15. linux系统上查询ip地址归属
  16. Apache自带的ab压力测试工具
  17. svm图像分割matlab,python实现
  18. 【Windows】bat | 服务 | bat作为服务 | bat转exe
  19. learning_git_from_Liao
  20. python+pygame之飞机大战-第一版源代码分析

热门文章

  1. 超全:Word常用快捷键
  2. CentOS7安装autojump
  3. java 公钥 验证_Java代码签名验证公钥私钥
  4. Python创意编程活动获奖名单公布啦!!
  5. 腾讯云服务器Intel Xeon Cascade Lake 8255C处理器CPU性能评测
  6. RocketMQ源码解析之rebalance
  7. 音视频探索(6):浅析MediaCodec工作原理
  8. Air Kiss(飞吻)技术实现方案
  9. C# 读取台达PLC
  10. DxLib 下载页,简单翻译(我不懂日文,瞎编的)