HTTP 响应报文由四部分组成,依次是状态行
、响应头
、空行
和响应正文
。下面依次 对这四部分进行介绍
文章目录
- 1.状态行
- 1.1 状态码
- 2.响应头
- 2.1 常见的响应头
- 3.空行
- 4.响应正文
1.状态行
状态行它由协议版本、状态码、状态码描述三个字段组成,它们之间使用空格进行分隔。比 如访问百度时,状态行的内容为 HTTP/1.1 200 OK。
状态码分为下述五大类。
- 1xx:指示信息,表示请求已接收,继续处理。
- 2xx:成功,表示请求已被成功接收、理解。
- 3xx:重定向,表示要完成请求必须进行更进一步的操作。
- 4xx:客户端错误,表示请求有语法错误或请求无法实现。
- 5xx:服务器端错误,表示服务器未能实现合法的请求。
详细的状态码如表图所示,无须记忆,使用时查表即可
1.1 状态码
状态码 | 简单描述 | 详细描述 |
100 | 继续 | 请求者应继续提出请求。服务器返回此代码表示已收到请求的一部分,正在等待其余部分 |
101 | 协议切换 | 请求者已要求服务器切换协议,服务器已确认并准备切换 |
200 | 成功 | 服务器已成功处理了请求 |
201 | 已创建 | 请求成功,并且服务器创建了新的资源 |
202 | 已接收 | 服务器已接收请求,但尚未处理 |
203 | 非授权信息 | 服务器已成功处理了请求,但返回的信息可能来自另一来源 |
204 | 无内容 | 服务器成功处理了请求,但没有返回任何内容 |
205 | 重置内容 | 服务器成功处理了请求,内容被重置 |
206 | 部分内容 | 服务器成功处理了部分请求 |
300 | 多种选择 | 针对请求,服务器可执行多种操作 |
301 | 永久移动 | 请求的网页已永久移动到新位置,永久重定向 |
302 | 临时移动 | 请求的网页暂时跳转到其他页面,暂时重定向 |
303 | 查看其他位置 | 请求对应的资源存在另一个 URI,应使用 GET 方法定向获取请求的资源 |
304 | 未修改 | 此次请求返回的网页未修改,继续使用上次的资源 |
305 | 使用代理 | 请求者应使用代理访问请求的网页 |
307 | 临时重定向 | 请求的资源临时从其他位置响应 |
400 | 错误请求 | 服务器无法解析该请求 |
401 | 未授权 | 请求要求身份验证或验证未通过 |
403 | 禁止访问 | 服务器拒绝请求 |
404 | 未找到 | 服务器找不到请求的网页 |
405 | 方法禁用 | 服务器禁用请求中指定的方法 |
406 | 不接收 | 无法使用请求的内容特性响应请求的网页 |
407 | 需要代理授权 | 请求者需要使用代理授权 |
408 | 请求超时 | 服务器等候请求时发生超时 |
409 | 冲突 | 服务器在完成请求时发生冲 |
410 | 已删除 | 请求的资源已永久删除 |
411 | 需要有效长度 | 服务器不接收不含有效内容长度标头字段的请求 |
412 | 未满足前提条件 | 服务器未满足请求者在请求中设置的其中一个前提条件 |
413 | 请求实体过大 | 请求实体过大,超出服务器的处理能力 |
414 | 请求的 URI 过长 | 请求的 URI(通常为网址)过长,服务器无法处理 |
415 | 不支持的媒体类型 | 请求的格式不被请求页面支持 |
416 | 请求范围不符合要求 | 页面无法提供请求的范围 |
417 | 未满足期望值 | 服务器未满足请求标头字段的要求 |
500 | 服务器内部错误 | 服务器遇到错误,无法完成请求 |
501 | 尚未实施 | 服务器不具备完成请求的功能 |
502 | 错误网关 | 服务器作为网关或代理从上游服务器收到无效响应 |
503 | 服务不可用 | 服务器目前无法使用(由于超载或停机维护) |
504 | 网关超时 | 服务器作为网关或代理没有及时从上游服务器收到请求 |
505 | HTTP 版本不受支持 | 服务器不支持请求中所用的 HTTP 版本 |
2.响应头
2.1 常见的响应头
它包含了服务器对请求的一些应答信息,常见响应头如图表所示。
常见响应头
响应头 | 解释 | 示例 |
Accept-Ranges | 表明服务器是否支持指定范围请求及支持哪种类型的分段请求 | Accept-Ranges:bytes |
Age | 从原始服务器到代理缓存形成的估算时间(以秒计,非负) | Age:12 |
Allow | 对某网络资源的有效的请求行为,不允许则返回 405 | Allow:GET, HEAD |
Cache-Control | 告诉所有的缓存机制是否可以缓存及缓存哪种类型 | Cache-Control:no-cache |
Content-Encoding | Web服务器支持的返回内容压缩编码类型 | Content-Encoding:gzip |
Content-Language | 响应正文的语言 | Content-Language:en,zh |
Content-Length | 响应正文的长度 | Content-Length:348 |
Content-Location | 请求资源可替代的备用的另一地址 | Content-Location:/index.htm |
Content-MD5 | 返回资源的 MD5 校验值 | Content-MD5:Q2hlY2sgSW50ZWdyaXR5IQ== |
Content-Range | 在整个返回体中本部分的字节位置 | Content-Range:bytes 21010-47021/47022 |
Content-Type | 返回内容的 MIME 类型 | Content-Type:text/html; charset=utf-8 |
Date | 原始服务器消息发出的时间 | Date:Tue, 15 Nov 2010 08:12:31 GMT |
ETag | 请求变量的实体标签的当前值 | ETag:“737060cd8c284d8af7ad3082f209582d” |
Expires | 响应过期的日期和时间 | Expires:Thu, 01 Dec 2010 16:00:00 GMT |
Last-Modified | 请求资源的最后修改时间 | Last-Modified:Tue, 15 Nov 2010 12:45:26 GMT |
Location | 用来重定向接收方到非请求 URL 的位置以完成请求或标识新的资源 | Location: |
Pragma | 包括实现特定的指令,它可应用到响应链上的任何接收方 | Pragma: no-cache |
Proxy-Authenticate | 它指出认证方案和可应用到代理的该URL 上的参数 | Proxy-Authenticate:Basic |
3.空行
响应头的最后会有一个空行,表示响应头结束,接下来是响应正文。这个空行必不 可少。
4.响应正文
Content-Type 指定响应正文的 Mime 类型,比如 text/html 类型响应正文为 HTML 代码, image/png 类型响应正文为 PNG 图片的二进制数据。