HTTP 的响应报文是指客户端发起 HTTP 请求后,服务器响应给客户端的报文,如下图:
HTTP响应报文由状态行(status line,也称响应行)、响应头部(headers)、空行(blank line)和响应数据(也叫响应体或响应正文)(response body)4个部分组成。如下图:
状态行由3部分组成,分别为:协议版本、状态码、状态码描述。
响应报文的协议版本必须与请求报文一致。
HTTP 状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。所有状态码的第一个数字代表了响应的五种状态之一。如下:
1**:信息,服务器收到请求,需要请求者继续执行操作
2**:成功,操作被成功接收并处理
3**:重定向,需要进一步的操作以完成请求
4**:客户端错误,请求包含语法错误或无法完成请求
5**:服务器错误,服务器在处理请求的过程中发生了错误
状态码描述是对状态码的简单描述。
响应头部的最后会有一个空行,表示响应头部结束,接下来为响应数据。与请求报文一致。
用于存放需要返回给客户端的数据信息。
下面是 Fiddler 抓出来的一段 HTTP 响应数据,响应体是一段 HTML。如下:
HTTP/1.1 200 OK Content-Type: text/html Last-Modified: Wed, 01 Sep 2021 08:15:51 GMT Accept-Ranges: bytes ETag: "5173d69399fd71:0" Server: Microsoft-IIS/10.0 Date: Wed, 29 Jun 2022 05:46:31 GMT Content-Length: 52891 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title>Artom - Modern & Multipurpose HTML Template</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> ... <script src="js/wow.min.js"></script> <script src="js/aos.js"></script> <script src="js/plugins.js"></script> <script src="js/main.js"></script> </body></html>