第二章 简单的HTTP协议

HTTP基础

  • 两台计算机在使用HTTP通信在一条线路上的必须是一端为客户端,一端为服务器;
  • HTTP协议规定请求从客户端发出,最后服务器端响应该请求并返回;
  • HTTP是不保存状态,即无状态协议,于是为了实现保持状态功能引入了Cookie技术;

HTTP方法

GET:获取资源

GET方法用来请求访问已被URI识别的资源,制定的资源经服务器端解析后返回响应内容。

POST:传输实体主体

POST方法用来传输实体的主体,虽然GET方法也可以但一般不用GET方法传输实体的主体。

PUT:传输文件

PUT方法用来传输文件。就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件的内容,然后保存到请求URI指定的位置。

HEAD:获得报文首部

HEAD方法和GET方法一样,只是不返回报文主体部分,用于确认URI的有效性及资源更新的日期时间。

DELETE:删除文件

DELETE方法用来删除文件,是与PUT方法相反的方法。

OPTION:询问支持的方法

OPTION方法用来查询针对请求URI指定的资源支持的方法。

TRACE:追踪路径

TRACE方法是让WEB服务器端将之前的请求通信环回给客户端的方法。

CONNECT:要求用隧道协议连接代理

CONNECT方法要求在代理服务器通信时建立隧道,实现隧道协议进行TCP通信。

持久连接

问题:

初始的HTTP协议版本中,每进行一次HTTP通信就要断开一次TCP连接,随着HTTP的普及,文档中包含大量图片的情况多了起来以后,每次请求都会造成无谓的TCP连接建立和断开,增加通信量的开销。

解决:

使用持久连接的方法。特点是:只要任意一端没有明确的提出断开连接,则保持TCP的连接状态。

优点:

减少了TCP连接的重复建立和断开造成的额外开销,减轻了服务器的负载;另外,减少了开销的那部分时间,使HTTP请求和响应不能够更早的结束,这样WEB页面的显示速度也就相应的提高了。

使用Cookie的状态管理

Cookie会根据从服务器端发送的响应报文内的一个叫做Set—Cookie的首部字段信息,通知保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。

服务端发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。