网关:是一种特殊的服务器,作为其他服务器的中间实体使用;
Agent代理:所有发布web请求的应用程序都是HTTP Agent代理。Web浏览器其实就是一种代理;
HTTP报文是在HTTP应用程序之间发送的数据块;
Http报文的组成部分:对报文进行描述的起始行(start line)、包含属性的首部(header)块,以及可选的、包含数据的主体(body)部分;
Http TRACE方法:允许客户端在最终将请求发送给服务器时,看看它变成了什么样子;
Http OPTIONS方法:请求Web服务器告知其支持的各种功能。可以询问服务器通常支持哪些方法,或者对某些特殊资源支持哪些方法;
扩展方法:HTTP被设计成字段可扩展的。扩展方法指的是没有再HTTP/1.1规范中定义的方法。服务器会为它所管理的资源实现一些HTTP服务,这些方法为开发者提供了一种扩展这些HTTP服务能力的手段。
状态码100:Http客户端应用程序有一个实体的主体部分要发送给服务器,但希望在发送之前查看一下服务器是否会接受这个实体。
代理请求首部:
Max-Forward:在通往源端服务器的路径上,将请求转发给其他代理或网关的最大次数--与Track方法一同使用;
Proxy-Authorization 与Authorization首部相同,但这个首部是在与代理进行认证时使用的;
Proxy-Connection:与Connection首部相同,但这个首部是在与代理建立连接时使用的
连接管理
Http的优化,包括并行连接、keep-alive(持久连接)和管道化连接,世界上几乎所有的HTTP通信都是由TCP/IP承载的
TCP的数据是通过名为IP分组(或IP数据块)的小数据块来发送的,其安全版本HTTPS就是在HTTP和TCP之间插入了一个(称为TSL或SSL)密码加密层
每个IP分组中都包括:
一个IP分组首部(通常为20字节)
一个TCP段首部(通常为20字节)
一个TCP数据块(0个或多个字节)
TCP实现了自己的确认机制来确保数据的成功传输
每个TCP段都有一个序列号和数据完整性校验和。每个段的接受者收到完好的段时,都会向发送者回送小的确认分组。如果发送者没有在指定的窗口时间内收到确认信息,发送者就认为分组已被破坏或损毁,被重发数据。
TCP慢启动
TCP数据传输的性能还取决于TCP连接使用期。TCP连接会随着时间进行自我“调谐”,期初会限制连接的最大速度,如果数据成功传输,会随着时间的推移提高传输的速度。这种调谐称为TCP慢启动,用于防止因特网的突然过载和拥塞。
四种方法提高HTTP连接的性能:
并行连接:通过多条TCP连接发起并发的HTTP请求。
持久连接:重用TCP连接,以消除连接及关闭时延;
在事务处理结束之后仍然保持在打开状态的TCP连接被称为持久连接。非持久连接会在每个事务结束之后关闭。持久连接会在不同事务之间保持打开状态,直到客户端或服务器决定将其关闭为止。
重用已对目标服务器打开的空闲持久连接,就可以避开缓慢的连接建立阶段。而且已经打开的连接还可以避免慢启动的拥塞适应阶段,以便更快速的进行数据的传输。持久连接有两种类型:比较老的HTTP/1.0+"keep-alive" 连接,以及现代的HTTP/1.1 "persistent"
管道化连接:通过共享的TCP连接发起并发的HTTP请求;
HTTP/1.1允许在持久连接上可选的使用请求管道,这是相对于keep-alive连接的又一次性能优化。在响应达到之前,可以将多条请求放入队列。当第一条请求通过网络流向地球另一端的服务器时,第二条和第三条请求也可以开始发送了。在高时延网络条件下,这样做可以降低网络的环回时间,提高性能。
如果http客户端无法确认连接是持久的,就不应该使用管道。
必须按照与请求相同的顺序回送HTTP响应。HTTP报文中没有序列号标签,因此如果收到的响应失序了,就没办法将其与请求匹配起来了。
复用的连接:交替传送请求和响应