
4. HTTP 连接
文章平均质量分 70
gzf6
这个作者很懒,什么都没留下…
展开
-
4.1 TCP 连接
基本概念见1.5 连接 世界上几乎所有的 HTTP 通信都是由 TCP/IP 承载的,TCP/IP 是全球计算机及网络设备都在使用的一种常用的分组交换网络分层协议集。 一旦连接建立起来了,在客户端和服务器的计算机之间交换的报文就永远不会丢失、受损或失序。尽管报文不会丢失或受损,但如果计算机或网络崩溃了,客户端和服务器之间的通信仍然会被断开。在这种情况下,会通知客户端和服务器通信中断了。 建立连接步骤原创 2017-10-19 17:08:24 · 250 阅读 · 0 评论 -
4.2 TCP 性能特点
HTTP 紧挨着 TCP,位于其上层,所以 HTTP 事务的性能在很大程度上取决于底层 TCP 通道的性能。 TCP 是个很复杂的话题, 所以这里我们只能提供对 TCP 性能的简要概述。 1. HTTP 事务的时延 HTTP 事务主要的连接、传输以及处理时延: 注意,与建立 TCP 连接,以及传输请求和响应报文的时间相比,事务处理时间可能是很短的。除非客户端或服务器超载,或正在处理复杂的动态资源,否原创 2017-10-19 17:11:26 · 310 阅读 · 0 评论 -
4.3 HTTP 连接的处理
之前对 TCP 连接及其性能含义进行了精要的介绍,现在切回到 HTTP 上来。 1. Connection 首部 HTTP 允许在客户端和最终的源端服务器之间存在一串 HTTP 中间实体(代理、高速缓存等)。可以从客户端开始,逐跳将 HTTP 报文经过这些中间设备,转发到源端服务器上去(或者进行反向传输)。 Connection: 类型:通用首部 注释:虽然 RFC 2616 没有专门声明将 ke原创 2017-10-19 17:13:20 · 264 阅读 · 0 评论 -
4.4 并行连接
HTTP 允许客户端打开多条连接,并行地执行多个 HTTP 事务。在下面这个例子中,并行加载了四幅嵌入式图片,每个事务都有自己的 TCP 连接。嵌入的组件不一定都在同一台 Web 服务器上,可以同多台服务器建立并行的连接。 1. 并行连接可能会提高页面的加载速度 包含嵌入对象的组合页面如果能通过并行连接克服单条连接的空载时间和带宽限制,加载速度也会有所提高。时延可以重叠起来,而且如果单条连接没有充分原创 2017-10-19 17:15:15 · 2255 阅读 · 0 评论 -
4.5 持久连接
站点局部性(site locality):Web 客户端经常会打开到同一个站点的连接,初始化了对某服务器 HTTP 请求的应用程序很可能会在不久的将来对那台服务器发起更多的请求(比如,获取在线图片)。 因此,HTTP/1.1(以及 HTTP/1.0 的各种增强版本)允许 HTTP 设备在事务处理结束之后将 TCP 连接保持在打开状态,以便为未来的 HTTP 请求重用现存的连接。 持久连接:在事务处理原创 2017-10-19 17:20:10 · 478 阅读 · 0 评论 -
4.6 管道化连接
HTTP/1.1 允许在持久连接上可选地使用请求管道。这是相对于 keep-alive 连接的又一性能优化。 在响应到达之前,可以将多条请求放入队列。当第一条请求通过网络流向地球另一端的服务器时,第二条和第三条请求也可以开始发送了。在高时延网络条件下,这样做可以降低网络的环回时间,提高性能。 下图显示了:持久连接是怎样消除 TCP 连接时延,管道化请求是如何消除传输时延的 管道化连接(pipelin原创 2017-10-19 17:26:10 · 1168 阅读 · 2 评论 -
4.7 关闭连接
1. “任意”解除连接 所有 HTTP 客户端、服务器或代理都可以在任意时刻关闭一条 TCP 传输连接。通常会在一条报文结束时关闭连接(除非服务器怀疑出现了客户端或网络故障,否则就不应该在请求的中间关闭连接)。出错的时候,也可能在首部行的中间,或其他奇怪的地方关闭连接。 对管道化持久连接来说,这种情形是很常见的。HTTP 应用程序可以在经过任意一段时间之后,关闭持久连接。比如,在持久连接空闲一段时间原创 2017-10-19 17:28:54 · 339 阅读 · 0 评论