闭这个连接。这种会话方式虽然简便,但它会带来另外一个问题。如果客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源,如JavaScript文件、图像文件、CSS文件等;当浏览器每遇到这样一个Web资源,就会建立一个HTTP会话。如果这样的资源很多的话,就会加重服务器的负担,同时也会影响客户端浏览器加载HTML等Web资源的效率。
在对上述的缺陷进行改进和完善后,HTTP11协议进入了我们的视线。HTTP11和HTTP10相比较而言,最大的区别就是增加了持久连接支持。当客户端使用HTTP11协议连接到服务器后,服务器就将关闭客户端连接的主动权交还给客户端;也就是说,在客户端向服务器发送一个请求并接收以一个响应后,只要不调用Socket类的close方法关闭网络连接,就可以继续向服务器发送HTTP请求。当HTML中含有其他的Web资源时,浏览器就可以使用同一个网络连接向下载这些资源,这样就可以大大减轻服务器的压力。图2演示了这一过程。
图2
HTTP11协议的通讯过程
HTTP11除了支持持久连接外,还将HTTP10的请求方法从原来的三个GET、POST和HEAD扩展到了八个(OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE和CONNECT)。而且还增加了很多请求和响应字段,如上述的持久连接的字段Co
ectio
。这个字段有两个值,Close和KeepAlive。如果使用Co
ectio
Close,则关闭HTTP11的持久连接的功能,要打开HTTP11的持久连接的功能,必须使用Co
ectio
KeepAlive,或者不加Co
ectio
f字段(因为HTTP11在默认情况下就是持久连接的)。除了这些,还提供了身份认证、状态管理和缓存(Cache)等相关的请求头和响应头。
fr