HTTP报文头部字段信息
HTTP请求:
报文段如下:
GET http://www.baidu.com/index.html HTTP/1.0 //目标资源的url index.html表示指定资源文件的名称 HTTP/1.0表示客户端使用的版本号
User-Agent :Wget/1.12 (linux-gnu) //表示客户端使用的程序是Wget
Host : www.baidu.com //表示目标主机名(HTTP请求中必须包含的头部字段)
Connection : close //我们执行wget命令时传入的
close告诉服务器,处理完这个HTTP报文就关闭连接(服务器主动关闭的),下次即使同一个客户与服务器想要发送报文,也需要重新建立TCP连接。这称为短连接;如果是keep-alive字段,就表示同一用户的多个请求可以使用同一个TCP连接,称之为长连接。长连接能有效减少网络为建立TCP连接而导致的负荷,同时对每次请求而言缩短了处理时间。
第一行是请求行,GET是请求方法,表示客户端以只读的方式来申请资源,常见的HTTP请求的方法有九种,如下:
请求方法 | 含义 |
GET | 申请获取资源而不对服务器产生任何影响 |
HEAD | 与GET方法类似,不过只要求服务器返回头部信息,而不需要传输任何实际内容 |
POST | 客户端向服务器提交数据的方法。这种方法会影响服务器,服务器可能根据收到的数据动态创建新的资源,也可能更新原有的资源 |
PUT | 上传某个资源 |
DELETE | 删除某个资源 |
TRACE | 要求目标服务器返回原始HTTP请求的内容,它可以用来查看中间服务器对HTTP请求的影响 |
OPTIONS | 查看服务器对特定url都支持哪些请求方法,也可以把url设置为*,从而获得服务器支持的所有方法 |
CONNECT | 用于某些代理服务器,他们能把请求的连接转化为一个安全隧道。 |
PATCH | 对某个资源做部分修改 |
对于不对服务器做修改而只是从服务器获取资源或信息的方法,我们 可以将其视为安全的方法 ,有HEAD,GET,OPTIONS和TRACE。
在所有的头部字段之后,HTTP必须包含一个空行,以标识头部 字 段的结束。请求行和每个头部字段中必须以<CR><LF>结束(回车符和换行符);而空行必须只包含一个<CR><LF>,不能有其他字符,也不能有空白字符。
在空行之后,HTTP协议可以包含可选的消息体。
HTTP应答:
HTTP应答报文如下:
cookie是服务器发送给客户端的特殊信息,使得保持HTTP连接状态。
应答状态码如下:
在所有的头部字段之后,HTTP应答必须包含一个空行,以标识头部字段的结束。请求行和每个头部字段中必须以<CR><LF>结束(回车符和换行符);而空行必须只包含一个<CR><LF>,不能有其他字符,也不能有空白字符。
在空行之后是被请求文档的内容。