前面介绍了请求行的格式,这里将介绍HTTP响应当中的第一个组成部分,响应行。
响应行中的响应码分为两类,一种是100,200,300系列表示成功类型的响应码,还有400和500类型错误的响应码。
HTTP常见的错误码
- 1xx : 服务已收到请求,请求者继续执行操作。
- 2xx:请求成功,常见(201)
- 3xx:请求成功,页面发生重定向(301)
HTTP响应行
图中第一部分就是响应行, 上面是完整的HTTP响应,第一行就是我们的响应行。
在响应行,第一部分是HTTP协议版本,接下来是响应码和描述信息。
响应码分类:1xx 请求已收到,需要进一步处理
响应码定义了许多的规范,这些规范可以指导我们的服务器去设计,但并不是所有的都遵循响应码中的规范,有些服务器可以定义新的响应码不在这些规范当中的。
1xx系列,表示请求被服务器接收到了,但是服务器需要做进一步的处理才能完成这个操作。
100 continue:客户端在上传一个大的文件的时候,先告诉服务器,让服务器做好准备,比如常见的迅雷下载工具。由客户端发起请求中携带 Expect: 100-continue 头部触发,服务器回100 continue表示可以传递大文件了。
响应码分类: 2xx(一)
2xx表示成功处理的请求。
响应码分类: 2xx(二)
• 204 No Content:成功执行了请求且不携带响应包体,并暗示客户端无需更新当前的页面视图。(常见于put post等方法,上传了一些资源,但是返回告诉其不需要刷新ui等)
响应码分类: 3xx(一)
• 3xx:重定向使用 Location 指向的资源或者缓存中的资源。在 RFC2068中规定客户端重定向次数不应超过 5 次,以防止死循环。
• 300 Multiple Choices:资源有多种表述,通过 300 返回给客户端后由其自行选择访问哪一种表述。由于缺乏明确的细节,300 很少使用。
• 301 Moved Permanently:资源永久性的重定向到另一个 URI 中。(使得浏览器对永久的重定向直接缓存)
• 304 Not Modified:当客户端拥有可能过期的缓存时,会携带缓存的标识etag、时间等信息询问服务器缓存是否仍可复用,而304是告诉客户端可以复用缓存。(减少网络传输的数据量)