对于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端服务受损。
而如果条件允许的话就可以以客户端机器为颗粒度,限制每个客户端的最大长连接数,这样可以完全避免某个蛋疼的客户端连累后端服务。
短连接和长连接的操作过程是怎么样的?
短连接的操作步骤是:
建立连接——数据传输——关闭连接,这样不断循环。
长连接的操作步骤是:建立连接——数据传输——(保存连接)——数据传输——关闭连接。这样不断循环
对于HTTP协议,什么是长连接和短连接?相关推荐
- 转---谈谈HTTP协议中的短轮询、长轮询、长连接和短连接
作者:伯乐在线专栏作者 - 左潇龙 http://web.jobbole.com/85541/ 如有好文章投稿,请点击 → 这里了解详情 引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此 ...
- tcp协议中的长连接和短连接服务器,谈谈HTTP协议中的短轮询、长轮询、长连接和短链接...
undefined 在之前总结 WebSocket 的时候就已经提到过短长轮询了~~今天看公众号文章,又把长短连接引进来一起分析.感觉这种总结很棒,那么我们一起看看呗 长短连接 听说长短连接的话,应该 ...
- tcp、http协议的长连接和短连接
转载:http://www.cnblogs.com/onlysun/p/4520553.html 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当 ...
- 谈谈HTTP协议中的短轮询、长轮询、长连接和短连接
来源:伯乐在线专栏作者 - 左潇龙 链接:http://web.jobbole.com/85541/ 引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码.在研究一个项目 ...
- 误人子弟的网络,谈谈HTTP协议中的短轮询、长轮询、长连接和短连接
引言 最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码.在研究一个项目的时候,源码里面用到了HTTP的长轮询.由于之前没太接触过,因此LZ便趁着这个机会,好好了解了一下HT ...
- http协议之长连接与短连接服务器,长连接短连接
HTTP 协议与 TCP/IP 协议的关系 HTTP 协议是应用层的协议,而 TCP 协议是传输层的协议,IP 协议是网络层的协议. IP 协议主要解决网络路由以及寻址等问题,而 TCP 协议主要解决 ...
- 转载的--------------------HTTP协议中的短轮询、长轮询、长连接和短连接
最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码.在研究一个项目的时候,源码里面用到了HTTP的长轮询.由于之前没太接触过,因此便趁着这个机会,好好了解了一下HTTP的长长 ...
- TCP协议的长连接和短连接详解
一.前言 TCP在真正开始进行数据传输之前,Server 和 Client 之间必须建立一个连接.当数据传输完成后,双方不再需要这个连接时,就可以释放这个连接. TCP连接的建立是通过三次握手,而连接 ...
- HTTP协议的长连接与短连接
点击查看原文:查看原文 1.HTTP协议与TCP协议的关系?? HTTP的长连接和短连接实质上是TCP的长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议. IP层: ...
- HTTP协议中的长连接和短连接(keep-alive状态)
什么是长连接 长连接还是短连接 相比于短连接,长连接更节省资源.如果每发送一条消息就要创建链路.发起握手认证.关闭链路释放资源,会损耗大量的系统资源.长连接只在首次创建时或者链路断连重连才创建链路,链 ...
最新文章
- 线性回归:不能忽视的三个问题
- Lamp的搭建--centos6.5下安装mysql
- TypeScript里数组foreach和map操作的区别
- python:封装连接数据库方法
- Java虚拟机JVM的内部体系结构
- matlab为自定义后缀文件设置图标_【V3.0更新】| 这可能是全网最好用的文件管理神器了......
- 《Ext JS权威指南》——1.2节JSON概述
- Logistic regression Newton’s method
- 基于android预约功能,基于Android的银行业务预约系统的设计与实现
- LeetCode20.有效的括号 JavaScript
- 牛客 小a与星际探索 bfs
- HGOI 20190816 省常中互测8
- 通过反射获取类的完整结构(1)--属性方法
- 计算机信息技术教程(笔记)
- linux系统上查询ip地址归属
- Apache自带的ab压力测试工具
- svm图像分割matlab,python实现
- 【Windows】bat | 服务 | bat作为服务 | bat转exe
- learning_git_from_Liao
- python+pygame之飞机大战-第一版源代码分析