第2章 简单的HTTP协议
1.HTTP协议在客户端和服务端之间的通信
客户端:请求访问文本或图像等资源的一端。
服务器端:提供资源响应的一端。
注意:就一条通信路线来说,服务器端和客户端的角色是确定的,而用HTTP协议能够明确区分哪端是客户端,哪端是服务器端。
2.通过请求和响应的交换达成通信
过程:请求从客户端出发,最后服务器端响应该请求并返回。
GET
:请求访问服务的类型 ;
/index.htm
:请求访问的资源对象;
HTTP/1.1
:HTTP的版本号,用来提示客户端使用的HTTP协议功能;请求访问hackr.jp主机的/index.htm页面资源。
HTTP/1.1
:HTTP版本号
200
:状态码(status code)
Date
:创建响应的日期时间
<html>...</html>
:资源实体的主体
3.HTTP是不保存状态的协议
为了更快的处理大量事物,确保协议的可伸缩性,协议本身并不保留之前一切的请求或响应报文的信息。
Cookie:可记录状态,后面会讲到。
4.告知服务器意图的HTTP方法
[1] GET 获取资源
GET方法用来请求访问已被URI识别的资源。指定的资源经服务器端解析后返回相应内容。
[2] POST 传输实体主体
POST与GET都可以用来传输实体的主体。但POST的主要目的并不是获取相应的主体内容。
[3] PUT 传输文件
PUT方法用来传输文件。在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。
[4] HEAD 获得报文首部
HEAD方法和GET方法一样,知识不返回报文主体部分。用于确认URI的有效性及资源更新的日期时间等。
[5] DELETE 删除文件
DELETE方法按请求URI删除指定的资源。
[6] OPTIONS 询问支持的方法
OPTIONS方法用来查询针对请求URI指定的资源支持的方法。
[7] TRACE 追踪路径
TRACE方法是让Web服务器端将之前的请求通信环回给客户端的方法。
发送请求时,在Max-Forwards首部字段中填入数值,每经过一个服务器端就将该数字减1,当数值刚好减到0时,就停止继续传输。
[8] CONNECT 要求用隧道协议连接代理
CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL和TSL协议把通信内容加密后经网络隧道传输。
CONNECT格式:
CONNECT 代理服务器名:端口号 HTTP版本
5. 使用方法下达命令
方法的命令:向请求URI指定的资源发送请求报文
HTTP/1.0和HTTP/1.1支持的方法
6.持久接连节省通信量
在HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接。
但是在之后,一个HTML页面包含图片使得通信量剧集增加。
持久连接:只要任意一端没有明确提出断开连接,则保持TCP连接状态。