当前位置:首页>HTTP>HTTP报文>HTTP请求报文及响应报文的结构

HTTP请求报文及响应报文的结构

作者:微学网发布时间:2019-09-07 11:07:00

我们来看一下请求报文和响应报文的结构。

HTTP请求报文

个HTTP请求报文由四个部分组成:请求行、请求头部、空行、请求数据。

请求行

请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。比如

GET /data/info.html HTTP/1.1

方法字段就是HTTP使用的请求方法,比如常见的GET/POST

HTTP协议版本有两种:HTTP1.0/HTTP1.1 可以这样区别:

HTTP1.0对于每个连接都只能传送一个请求和响应,请求就会关闭,HTTP1.0没有Host字段;
而HTTP1.1在同一个连接中可以传送多个请求和响应,多个请求可以重叠和同时进行,HTTP1.1必须有Host字段。

请求头部

HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者 POST)。

如有必要,客户程序还可以选择发送其他的请求头。大多数请求头并不是必需的,但Content-Length除外。

对于POST请求来说 Content-Length必须出现。

空行

它的作用是通过一个空行,告诉服务器请求头部到此为止。

请求数据

若方法字段是GET,则此项为空,没有数据

若方法字段是POST,则通常来说此处放置的就是要提交的数据

比如要使用POST方法提交一个表单,其中有user字段中数据为“admin”, password字段为123456,那么这里的请求数据就是 user=admin&password=123456,使用&来连接各个字段。

总的来说,HTTP请求报文格式就如下图所示
HTTP请求报文

HTTP请求报文

HTTP请求报文

HTTP请求报文

HTTP响应报文

同样的,HTTP响应报文也由四部分组成:响应行、响应头、空行、响应体

响应行

响应行一般由协议版本、状态码及其描述组成 比如 HTTP/1.1 200 OK

其中协议版本HTTP/1.1或者HTTP/1.0,200就是它的状态码,OK则为它的描述。

常见状态码及其含义

响应头

响应头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据。

设置HTTP响应头往往和状态码结合起来。例如,有好几个表示“文档位置已经改变”的状态代码都伴随着一个Location头,而401(Unauthorized)状态代码则必须伴随一个WWW-Authenticate头。然而,即使在没有设置特殊含义的状态代码时,指定应答头也是很有用的。应答头可以用来完成:设置Cookie,指定修改日期,指示浏览器按照指定的间隔刷新页面,声明文档的长度以便利用持久HTTP连接,……等等许多其他任务。

空行

它的作用是通过一个空行,告诉服务器请求头部到此为止。

响应体

响应体就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是js就是JS代码,如此之类。

HTTP响应报文格式就如下图所示

HTTP响应报文

HTTP响应报文