HTTP协议中长连接与短连接的区别
2024-10-12 15:36:42
在HTTP/1.0中, 默认使用的是短连接.也就是说, 浏览器和服务器每进行一次HTTP操作, 就建立一次连接, 但任务结束就中断连接.如果客户端浏览器访问的某个HTML或其他类型的 Web 页中包含有其他的Web资源,如js文件、图像文件、CSS文件等;当浏览器每遇到这样一个Web资源,就会建立一个HTTP会话。
但从 HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头有加入这行代码:
Connection:keep-alive
在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立通过三次握手,释放则需要四次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的。
模拟TCP短连接的过程:
- client 向 server 发起连接请求
- server 接到请求,双方建立连接
- client 向 server 发送消息
- server 回应 client
- 一次读写完成,此时双方任何一个都可以发起 close 操作
在步骤5中,一般都是 client 先发起 close 操作。当然也不排除有特殊的情况。
从上面的描述看,短连接一般只会在 client/server 间传递一次读写操作!
模拟TCP长连接的过程:
- client 向 server 发起连接
- server 接到请求,双方建立连接
- client 向 server 发送消息
- server 回应 client
- 一次读写完成,连接不关闭
- 后续读写操作...
- 长时间操作之后client发起关闭请求
长连接: 连接建立成功后,可以发送多次请求和响应,等双方不进行通信的时候,服务端做好断开连接的操作
短连接: 连接建立成功后,一次请求和响应完成以后连接就会断开,每次发送请求需要先建立好连接
长连接减少了用户的等待时间,提升了访问速度,但是增加了服务端的资源开销
短连接不会占用服务端过多的资源,但是增加了用户的等待时间,减慢了访问速速
最新文章
- Netsuite >; Foreign Currency Revaluation 外币评估
- [经验交流] docker in docker 的变通实现方法
- bzoj 1001
- PHP读取流文件
- ZK框架的分析与应用
- nyoj 168 房间安排(区间覆盖)
- QT UI 使一个QWidget里面的元素自动填充满本QWidget
- Windows服务器Pyton辅助运维--02.远程重启IIS服务器
- mysql_config_editor程序的用法
- Android Stuido怎样查看快捷键冲突?
- Java 信号 Semaphore 简介
- SQL Server中存储过程比直接运行SQL语句慢的原因
- js获取编辑框游标的位置
- DOMContentLoaded
- Redis in python
- CF1119A Ilya and a Colorful Walk
- JPA唯一索引更新删除的问题
- Page10:Lyapunov稳定概念及判定定理[Linear System Theory]
- js五道经典练习题--第二道仿qq聊天框
- Linux与Windows远程互访(使用Rdesktop与SSH)
热门文章
- python全栈开发 * 30知识点汇总 * 180713
- particles.js中文开发手册
- css学习_css文字阴影、盒子阴影
- pytorch 中的重要模块化接口nn.Module
- Win7 搭建Linux开发环境
- 【数据可视化-Echarts】Echart基础
- java框架之SpringBoot(9)-数据访问及整合MyBatis
- apache多站点vhost.conf配置
- WebForm内置对象:Application和ViewState、Repeater的Command用法
- c#阿里云服务器发送邮件