HTTP协议的请求和响应报文都是由报文首部、空行和报文主体组成的,报文首部又分为:请求行或状态行、首部字段。
请求行
请求行是存在于请求报文中的,其组成为:
请求方法 请求URL HTTP版本
HTTP的请求方法:
请求方法 | 功能描述 | 是否包含主体数据 |
---|---|---|
GET | 从服务器获取文本 | 否 |
POST | 向服务器发送客户端数据 | 是 |
PUT | 上传客户端的文件到服务器 | 是 |
DELETE | 从服务器上删除一个文件 | 否 |
HEAD | 只获取服务器的响应首部 | 否 |
OPTIONS | 获取服务器可以执行的方法 | 否 |
TRACE | 对经过代理服务器的报文进行追踪 | 否 |
状态行
状态行是存在于响应报文中的,其组成为:
HTTP版本 状态码 描述短语
HTTP响应报文状态码:
状态码范围 | 状态码类别 | 典型状态码 | 描述短语 | 含义 |
---|---|---|---|---|
1xx | 信息类状态码 | 100 | Continue | 收到请求初始部分,请继续发送 |
2xx | 成功状态码 | 200 | OK | 请求已被正常处理 |
2xx | 成功状态码 | 204 | No Content | 请求被成功处理,但没有主体数据 |
2xx | 成功状态码 | 206 | Partial Content | 对资源部分请求成功 |
3xx | 重定向状态满 | 301 | Moved Permanently | 永久性重定向,请求的URL资源已被更新,响应首部包含新的URL |
3xx | 重定向状态码 | 302 | Found(HTTP/1.1)、Move Temporarily(HTTP/1.0) | 临时性重定向,请求的URL资源临时更新 |
3xx | 重定向状态码 | 304 | Not Modified | 这是用于缓存目的。它告诉客户端的响应没有被修改,所以客户端可以继续使用的响应相同的缓存版本。 |
4xx | 客户端错误状态码 | 400 | Bad Request | 客户端发送一个错误请求 |
4xx | 客户端错误状态码 | 401 | Unauthorized | 请求需要包含通过HTTP认证信息 |
4xx | 客户端错误状态码 | 403 | Forbidden | 访问被拒绝 |
4xx | 客户端错误状态码 | 404 | Not Found | 未找到请求的URL资源 |
5xx | 服务器错误状态码 | 500 | Internal Server Error | 服务器出现错误,无法提供请求的资源 |
5xx | 服务器错误状态码 | 503 | Service Unavailable | 服务器正忙,无法提供正常请求服务 |
首部字段
通用首部字段
通用首部字段无论是在请求报文中还是响应报文中都可以使用,主要用于描述HTTP协议本身。
通用首部字段名 | 功能说明 |
---|---|
Connection | 用于指定客户端/服务器间连接的选项,例如指定连续连接或者通过”close"选项通知服务器在响应完成后关闭连接 |
Date | 报文创建日期 |
Transfer-Encoding | 指定报文主体数据的编码方式 |
Update | 发送端协议准备升级为新版本 |
Via | 报文经过中间节点(网关、代理等)信息 |
Cache-Control | 指定缓存行为 |
Warning | 错误通知 |
请求首部字段
请求首部字段存在于HTTP请求报文中,主要描述客户端的版本、处理能力等信息。
请求首部字段名 | 功能说明 |
---|---|
Accept | 客户端可处理的媒体类型 |
Accept-Charset | 客户端优先接收的字符集 |
Accept-Encoding | 客户端优先接收的编码方式,如gzip |
Accept-Language | 客户端希望的语言种类 |
Authorization | 授权信息,通常用于对服务器发送的WWW-Authorization首部进行应答 |
Cookie | 用于客户端向服务器发送Cookie信息 |
Cookie2 | 用来说明客户端支持的Cookie版本 |
From | 客户端的E-mail地址 |
Host | 请求资源所在服务器的主机和端口 |
If-Modified-Since | 只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回304 Not Modified |
Referer | 包含一个URL,客户端从该URL页面出发访问请求页面 |
User-Agent | 用户代理,客户端信息 |
UA-OS | 客户端主机上的操作系统名称、版本等信息 |
UA-Pixels | 客户端显示器像素信息 |
响应首部字段
响应首部字段存在于响应报文中,主要用于描述响应主机的信息、功能等。
响应首部字段名 | 功能含义 |
---|---|
Age | 响应资源创建的时间 |
Set-Cookie | 在客户端设置一个Cookie,服务器用来对客户端进行标识 |
Server | 服务器应用程序软件的名称、版本等信息 |
Retry-After | 当资源不可用时,在此期间再次发送请求 |
Refresh | 表示浏览器应该在多长时间之后刷新文档,以秒计 |
实体首部字段
实体首部字段用于描述HTTP报文主体数据的字段,可以同时存在于请求报文中和响应报文中。如,实体信息类型、长度、压缩方法等。
实体首部字段名 | 功能含义 |
---|---|
Allow | 资源主体可以支持的HTTP请求方法 |
Content-Location | 通知接收端主体的URL,用于接收端定位到该资源 |
Content-Encoding | 主体适用的编码方式 |
Content-Language | 解释主体时使用的语言 |
Content-Length | 主体的大小,通常以字节数表示 |
Content-MD5 | 主体的MD5校验和 |
Content-Type | 主体的对象类型 |