HTTP是一个请求/响应式的协议,我们发送方发送一个请求,就会返回给我们一个响应。我们来说一下HTTP响应报文的格式。
首先我们通过抓包工具或者我们浏览器的开发者工具可以查看响应报文。
上图是我们访问bing搜索返回的一个响应。
这个响应分为三个部分:1.首行 2.响应头 3.正文(body)
响应的整体格式和我们的请求格式是一样的,分为三个部分,只有细节上有一些差别。比如我们的响应报文的首行和请求报文的首行展现的结果就是不一样的。
1.首行:
我们看到首行首先是一个我们这个HTTP协议的版本为1.1,然后接下来能看到我们的一个状态码为200,最后是我们的响应状态码的描述。
我们接下来介绍一下关于 HTTP协议中的状态码
HTTP协议中的状态码有:1xx、2xx、3xx、4xx、5xx。
然后我们常见的状态码比如:
200:访问成功
301:永久重定向
302:临时重定向
403:没有访问权限
404:没有找到资源
500:服务器内部错误
2.响应头:
响应头跟我们的请求头一样,是通过我们的Key_Value的形式来存储数据,通过:的方式来分隔Key和Value。和请求头一样,响应头用一个空行来表示结束。接下来的内容就是我们的正文。
3.正文:
正文中存放的我们服务器返回的数据。正文的具体格式取决于Content-Type就像上图我们的响应头中的Content-Type对应的是 text/html; charset=utf-8,这就代表我们返回的是一个html然后字符集为utf-8。