《HTTP权威指南》4-连接管理
TCP连接
TCP/IP是全球计算机及网络设备都在使用的一种常见的分组交换网络分层协议集
客户端应用程序可以打开一条TCP/IP连接。连接到可能运行在世界任何地方的服务器应用程序
TCP的可靠数据管道
HTTP连接实际上就是TCP连接和一些使用连接的规则
TCP为HTTP提供了一条可靠的比特传输管道
从TCP连接一端填入的字节会从另一端以原有的顺序,正确的传送出来
TCP流是分段的,由IP分组传送
HTTP要传送一条报文时,会进行如下传送:
- 以流的形式将报文数据的内容通过一条打开的TCP连接按序传输
- TCP接收到数据流后,将数据流砍成被称作段的小数据块
- 将段封装在IP分组中,通过因特网进行传输
保持TCP连接的正确运行
任意时刻计算机都可以有几条TCP连接处于打开状态,TCP是通过端口号来保持所有这些连接的正确运行的。
TCP连接是通过4个值来是识别的:<源IP地址、源端口号、目的IP地址、目的端口号>
对TCP性能的考虑
HTTP事务的时延
HTTP事务时延有一下几种主要原因:
- 从URL中解析IP地址及端口号
- 建立TCP连接
- 传输请求报文,及服务器处理请求报文
- 返回响应报文
TCP网络时延的大小取决于硬件速度,网络和服务器的负载,请求和响应报文的尺寸,客户端和服务器的距离等
HTTP连接的处理
Connection首部
HTTP允许在客户端和最终的源端服务器之间存在一串HTTP中间实体,包括代理,网关,缓存等。
在某些情况下,两个相邻的HTTP应用程序会为它们共享的连接应用一组选项。
HTTP的Connection首部字段中有一个由逗号分隔的连接标签列表,这些标签为此连接指定了一些不会传播到其他连接中去的选项。
- 当HTTP应用程序收到一条带有Connection首部的报文时,接收端会接卸发送端请求的所有选项,并将其应用。
- 在将此报文转发给下一跳地址之前,删除Connection首部及Connection中列出的所有首部
并行连接
HTTP允许客户端打开多条连接,并行地执行多个HTTP事务
并行连接可能会提高页面的加载速度
并行连接不一定会更快
并行连接的速度可能会更快,但不一定总是更快。
当客户端的网络带宽不足时,大部分的时间肯能都是用来传送数据的,一个连接到速度较快的服务器上的HTTP事务很容易好近所有可能用的Modem带宽。
而且,打开大量连接会消耗很多内存资源,从而引发自身的性能问题
并行连接可能让人“感觉”更快一些
当更多的组件对象同时出现在屏幕上,使用户能够看到加载的进展,哪怕速度上没有变化,也会让人感觉更快
持久连接
Web客户端经常会打开同一个站点的连接。
HTTP/1.1允许HTTP设备在事务处理结束之后将TCP连接保持在打开状态,以便为未来的HTTP请求重用现存的连接。
在事务处理结束后仍然保持在打开状态的TCP连接被称为持久连接
管道化连接
HTTP/1.1允许在持久连接上可选地使用请求管道。
在响应到达之前,可以将多条请求放入队列。
当第一条请求通过网络流向地球另一端的服务器时,第二条和第三条也可以开始发送了
管道化连接有如下几条限制:
- 如果HTTP客户端无法确认连接是持久的,就不应该使用管道
- 必须按照与请求相同的顺序回送HTTP响应
- HTTP客户端必须做好连接会在任意时刻关闭的准备
- HTTP客户端不应该用管道化的方式发送会产生副作用的请求,如POST,否则,当出错时,就会存在某些方法永远不会被执行的风险。
几种连接图
《HTTP权威指南》4-连接管理的更多相关文章
- 和我一起学《HTTP权威指南》——连接管理
连接管理 1.TCP连接 几乎所有的HTTP通信都是由TCP/IP承载的. 浏览网页时客户端执行的操作: 如浏览http://www.joes-hardware.com:80/power-tools. ...
- HTTP权威指南之连接管理
TCP连接世界上几乎所有的 HTTP 通信都是由 TCP/IP 承载的, TCP/IP 是全球计算机及网络设备都在使用的一种常用的分组交换网络分层协议集. 客户端应用程序可以打开一条 TCP/IP 连 ...
- HTTP权威指南读书笔记
HTTP权威指南笔记 读书有两种境界,第一种境界是将书读薄,另一种是读厚.本篇文章就是HTTP权威指南的读书笔记,算是读书的第一重境界,将厚书读薄.文章对HTTP的一些关键概念做了比较详细的概述,通读 ...
- 《HTTP权威指南》之HTTP连接管理及对TCP性能的考虑
在上一篇博客中(<HTTP权威指南>之HTTP相关概念详解)我们简单对HTTP相关的基本概念做了一些简单的了解,但未对HTTP连接管理的内容做一些详细的介绍.本篇博客我们就一起来看一下HT ...
- 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块
五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options] -v,--verbose ...
- 《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令
2016-12-23 读这本<Ansible权威指南>学习ansible,根据本书内容和网上的各种文档,以及经过自己测试,写出以下笔记.另,这本书内容很好,但印刷错误比较多,作者说第二版会 ...
- HTTP连接管理
本文是<HTTP权威指南>读书笔记: 几乎所有的HTTP通信都是通过TCP/IP承载的,当HTTP要传送一些报文时,会以流的形式将报文数据的内容通过一条打开的TCP连接按序传输.因此HTT ...
- Netty权威指南
Netty权威指南(异步非阻塞通信领域的经典之作,国内首本深入剖析Netty的著作,全面系统讲解原理.实战和源码,带你完美进阶Netty工程师.) 李林锋 著 ISBN 978-7-121-233 ...
- Android开发权威指南(第2版)新书发布
<Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供 ...
- Hadoop权威指南:HDFS-数据流
Hadoop权威指南:HDFS-数据流 [TOC] 剖析文件读取 客户端通过调用FileSystem对象的open()方法来打开希望读取的文件,对于HDFS来说, 这个对象是分布式文件系统的一个实例 ...
随机推荐
- 4k/1k边界问题
AXI总线,burst操作,不能跨4K边界问题! 在Master_A设计中,假如Master_A只操作一块64M SDRAM(此Master_A不操作任何其他Slave),读写的数据量远远大于4K.因 ...
- redis设置密码
1.初始化Redis密码: 在redis.conf配置文件中有个参数: requirepass 这个就是配置redis访问密码的参数: 比如 requirepass test123: (Ps:需重启 ...
- hdu1251+字典树常用模板
这里只简单给出几个常用的字典树的模板,要看具体介绍的请看:传送门 Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现) ...
- OO_多项式求导_单元总结
概述: 面向对象第一单元的作业是三次难度依次递增的多项式求导.第一次作业是仅包含带符号整数和幂函数的多项式求导,例如:-1+xˆ233-xˆ06:第二次是在前面的基础上增加了三角函数的求导,例如:-1 ...
- CentOS7 常用设置
安装配置 0.Centos7 优盘U盘安装以及解决安装时引导错误 1.CentOS7开启网卡,设置开机启用网卡 2.CentOS7 修改静态IP地址 3.CentOS7 下使用root免密码输入自动登 ...
- 设计模式学习心得<桥接模式 Bridge>
说真的在此之前,几乎没有对于桥接模式的应用场景概念. 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化.这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来 ...
- 原来这就是 UI 设计师的门槛
本文主要分享 UI 设计师入行的一些个人经验指南,希望可以带给新入行业的设计师一点帮助! 写在前面 随着互联网的不断发展,特别是移动互联网的不断成熟,视觉设计师也进行了迭代与细分.衍生出的 UI 设计 ...
- Java关键字this与super
this有两个用途: 1.引用隐式参数(出现在方法名前的参数,显示参数是出现在方法名后位于括号里的参数,如:e.raiseSalary(10%),e是隐式参数,10%是显示参数):这里比较常见.形式如 ...
- 受限filterbanks
2.Related works to filterbank learning 虽然DNN-HMM模型的性能比GMM-HMM模型相比,具有很大的优势,但是训练集和测试集之间的失配问题,也使得DNN-HM ...
- js unicode转中文 方案概述联网LED照明方案可执行全部的DALI 和
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...