http报文格式怎样的,画图
时间: 2023-06-19 14:10:50 浏览: 53
HTTP报文格式分为请求报文和响应报文两种类型,下面分别给出它们的格式和示意图:
1. 请求报文格式
请求报文由请求行(request line)、消息报头(header)、空行(blank line)和请求主体(entity body)四个部分组成。
请求行包括请求方法(method)、请求URI(uniform resource identifier)和HTTP协议版本(version)三个字段,它们之间用空格分隔。例如:
```
GET /index.html HTTP/1.1
```
消息报头包括若干个字段,每个字段由字段名和字段值两部分组成,中间用冒号和空格分隔。不同的消息报头字段有不同的含义,例如:
```
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
```
空行是为了区分消息报头和请求主体而存在的,它的内容为空,只有一个回车符和一个换行符。
请求主体是可选的,如果请求方法是GET或HEAD,则请求主体为空,否则请求主体就是要发送的数据。
下图是一个请求报文的示意图:
![HTTP请求报文格式示意图](https://img-blog.csdn.net/20180707172607804?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW9oYWl6aGFuZy9ibGFuazEyMzQ1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70)
2. 响应报文格式
响应报文由状态行(status line)、消息报头和响应主体(entity body)三个部分组成。
状态行包括HTTP协议版本、状态码(status code)和原因短语(reason phrase)三个字段,中间用空格分隔。例如:
```
HTTP/1.1 200 OK
```
消息报头和请求报文的消息报头类似,也由若干个字段组成。例如:
```
Content-Type: text/html; charset=utf-8
Content-Length: 12345
```
响应主体是服务器返回的数据,例如HTML页面、JSON数据等等。
下图是一个响应报文的示意图:
![HTTP响应报文格式示意图](https://img-blog.csdn.net/20180707172856219?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW9oYWl6aGFuZy9ibGFuazEyMzQ1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70)