【图解HTTP】第六章 HTTP首部

作者:wallace-lai
发布:2024-03-19
更新:2023-03-25

HTTP报文结构

HTTP协议的请求和响应报文中必定包含HTTP首部。首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。

一、报文首部

HTTP请求报文

在请求中,HTTP报文由以下几部分组成:

(1)方法;

(2)URI;

(3)HTTP版本;

(4)HTTP首部字段;

  • 请求首部字段

  • 通用首部字段

  • 实体首部字段

HTTP响应报文

在响应中,HTTP报文由以下几部分组成:

(1)HTTP版本;

(2)状态码(数字和原因短语);

(3)HTTP首部字段;

  • 响应首部字段

  • 通用首部字段

  • 实体首部字段

二、首部字段

HTTP中总共有4种首部字段类型:

(1)通用首部字段

请求报文和响应报文两方都会使用的首部。

(2)请求首部字段

从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。

(3)响应首部字段

从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息。

(4)实体首部字段

针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息。

HTTP/1.1规范定义了如下的47中首部字段。

通用首部字段

首部字段名

说明

Cache-Control

控制缓存的行为

Connection

逐跳首部、连接的管理

Data

创建报文的日期时间

Pragma

报文指令

Trailer

报文末端的首部一览

Transfer-Encoding

指定报文主体的传输编码方式

Upgrade

升级为其他协议

Via

代理服务器的相关信息

Warning

错误通知

请求首部字段

首部字段名

说明

Accept

用户代理可处理的媒体类型

Accept-Charset

优先的字符集

Accept-Encoding

优先的内容编码

Accept-Language

优先的语言(自然语言)

Authorization

Web认证信息

Expect

期待服务器的特定行为

From

用户的电子邮箱地址

Host

请求资源所在服务器

if-Match

比较实体标记(ETag)

if-Modified-Since

比较资源的更新时间

if-None-Match

比较实体标记(与if-Match相反)

if-Range

资源未更新时发送实体Byte的范围请求

if-Unmodified-Since

比较资源的更新时间(与if-Modified-Since相反)

Max-Forwards

最大传输逐跳数

Proxy-Authorization

代理服务器要求客户端的认证信息

Range

实体的字节范围请求

Referer

对请求中URI的原始获取方(???)

TE

传输编码的优先级

User-Agent

HTTP客户端程序的信息

响应首部字段

首部字段名

说明

Accept-Ranges

是否接受字节范围请求

Age

推算资源创建经过时间

ETag

资源的匹配信息

Location

令客户端重定向至指定URI

Proxy-Authenticate

代理服务器对客户端的认证信息

Retry-After

对再次发起请求的时机要求

Server

HTTP服务器的安装信息

Vary

代理服务器缓存的管理信息

WWW-Authenticate

服务器对客户端的认证信息

实体首部字段

首部字段名

说明

Allow

资源可支持的HTTP方法

Content-Encoding

实体主体适用的编码方式

Content-Language

实体主体的自然语言

Content-Length

实体主体的大小(单位:字节)

Content-Location

替代对应资源的URI

Content-MD5

实体主体的报文摘要

Content-Range

实体主体的位置范围

Content-Type

实体主体的媒体类型

Expires

实体主体的过期时间

Last-Modified

资源的最后修改时间