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 图片的二进制数据。