http keepalive原理
1、背景
KeepAlive是就是通常所称的长连接。KeepAlive带来的好处是可以减少tcp连接的开销,这对于短response body的请求效果更加明显。同时,可以为采用HTTP协议的交互式应用提供良好的session支持。
2、KeepAlive的原理
在HTTP1.0和HTTP1.1协议中都有对KeepAlive的支持。其中HTTP1.0需要在request中增加"Connection: keep-alive" header才能够支持,而HTTP1.1默认支持。
2.1 HTTP1.0 KeepAlive支持的数据交互流程如下:
a)Client发出request,其中该request的HTTP版本号为1.0。同时在request中包含一个header:"Connection: keep-alive"。
b)Web Server收到request中的HTTP协议为1.0及"Connection: keep-alive"就认为是一个长连接请求,其将在response的header中也增加"Connection: keep-alive"。同时不会关闭已建立的tcp连接。
c)Client收到Web Server的response中包含"Connection: keep-alive",就认为是一个长连接,不close tcp连接。并用该tcp连接再发送request。(跳转到a))
2.2 HTTP1.1 KeepAlive支持的数据交互流程如下:
a)Client发出request,其中该request的HTTP版本号为1.1。
b)Web Server收到request中的HTTP协议为1.1就认为是一个长连接请求,其将在response的header中也增加"Connection: keep-alive"。同时不会关闭已建立的tcp连接。
c)Client收到Web Server的response中包含"Connection: keep-alive",就认为是一个长连接,不close tcp连接。并用该tcp连接再发送request。(跳转到a))
http keepalive原理相关推荐
- 【keep-alive原理】
keep-alive原理 它提供了include与exclude两个属性,允许组件有条件地进行缓存. 作用: 在组件切换过程中将状态保留在内存中,防止重复渲染DOM,减少加载时间及性能消耗,提高用户体 ...
- keep-alive原理
文章目录 什么是keep-alive? 用法 activated和deactivated两个钩子函数 实现原理 什么是keep-alive? keep-alive是vue中的一个内置组件,能够把不活动 ...
- Vue中keep-alive原理
定义 keep-alive是Vue中内置的一个抽象组件.它自身不会渲染一个 DOM 元素,也不会出现在父组件链中.当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们. keep-alive是用 ...
- keepalive 原理讲解
keepalive 我们说到keepalive的时候,需要先明确一点,这个keepalive说的是tcp的还是http的. tcp的keepalive是侧重在保持客户端和服务端的连接,一方会不定期发送 ...
- TCP keepalive的详解(解惑)
TCP是面向连接的,一般情况,两端的应用程序可以通过发送和接收数据得知对端的存活. 当两端的应用程序都没有数据发送和接收时,如何判断连接是否正常呢? 这就是SO_KEEPALIVE的作用. 1. SO ...
- Tcp keepalive详解
转载:https://www.cnblogs.com/lanyangsh/p/10926806.html TCP是面向连接的,一般情况,两端的应用程序可以通过发送和接收数据得知对端的存活. 当两端的应 ...
- keep-alive包裹的el-tabs中有两个页面使用echart渲染空白问题
问题: keep-alive包裹的el-tabs中有两个页面使用了echart,在resize后切换,echart会出现空白现象,需要再resize才会出现: 解决方法: 在keep-alive包裹的 ...
- linux so keepalive,Linux SO_KEEPALIVE
对于面向连接的TCP socket,在实际应用中通常都要检测对端是否处于连接中,连接端口分两种情况: 1.连接正常关闭,调用close() shutdown()连接优雅关闭,send与recv立马返回 ...
- 关于Keep-alive的认识和具体用法
一.keep-alive是什么 keep-alive是vue中的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM keep-alive 包裹动态组件时,会缓存不活动的组件实例,而不是 ...
- linux socket SO_KEEPALIVE选项
连接关闭的两种情况 对于面向连接的TCP socket,在实际应用中通常都要检测对端是否处于连接中,连接端口分两种情况: 1.连接正常关闭,调用close() shutdown()连接优雅关闭,sen ...
最新文章
- 从底部上滑失灵_雷达液位计测量液位失灵的检查处理方法
- 青龙羊毛——美团联想商城喜爱帮(搬运)
- Django1.7开发博客
- 用matlab绘制抛物线y的x平方,我刚刚学习MATLAB,想画一下(x^2+y^2-1)^3=x^2*y^3这个曲线的图像,该怎么画呢,谢谢大家了。...
- 通过 Lotus Domino Java 代理消费 Web 服务
- 【POJ - 2236】Wireless Network (并查集)
- android 字体空格,android – 在textview中设置字母之间的空格
- 阿里巴巴开源项目汇总-(JAVA)
- libudev-dev : Depends: libudev0 (= 175-0ubuntu9) but 175-0ubuntu9.3 is to be installed 错误解决方案...
- Java 反射常用方法
- 机器学习笔记(十):梯度下降 | 凌云时刻
- Notepad++的SQL格式化插件
- Java内存模型与Jvm内存模型
- php控制flash播放视频教程,Flash AS3教程:如何利用按钮控制选择播放动画
- windows10 1909 X64位 精简优化珍藏版
- 【Linux】nasm/yasm not found
- lpx寒假作业案例1
- 英文面试常见问题及回答汇总
- 关于汽油动力汽车和混合动力汽车的环保问题。
- DAY7:尚学堂高琪JAVA(66~69)
热门文章
- 人脸识别(三) 摄像头中的人脸识别+LFW数据集测试
- Xcode 9: An error occurred uploading to the iTunes Store. iTunes Store Operation Failed
- pdf分页分片预览,pdf截取,pdf转图片
- rp文件,怎么用浏览器预览
- html修改每页显示数量,JS实现动态设置每页显示固定行数
- 变压器综合试验台的功能到底有多强大?
- 电信机顶盒怎么连接鸿蒙系统电视,移动电信机顶盒怎么投屏?怎么连接手机
- 【专利提交】个人通过CPC客户端网上提交专利文稿的完整流程
- hadoop配置历史服务器
- ubuntu12.04安装配置opensips,搭建voip服务器