一、HTTP 请求的过程与原理

HTTP协议定义了浏览器怎么向服务器请求文档,以及服务器怎么把文档传给浏览器。

HTTP 请求的过程与原理;HTTP的报文结构_字段

每个服务器都有一个进程,它不断监听TCP的80端口,以便发现是否有浏览器向它发出连接建立请求;

监听到连接请求,就会建立TCP连接;

浏览器向服务器发出浏览某个页面的请求,服务器返回所请求的页面作为响应;

最后释放TCP连接。

在浏览器和服务器之间的请求和相应的交互,必须按照规定的格式和遵循一定的规则,这些格式和规则就是超文本传输协议HTTP。

二、HTTP的报文结构

HTTP报文有两种,HTTP请求报文和HTTP响应报文。

HTTP 请求的过程与原理;HTTP的报文结构_字段_02

2.1 HTTP请求报文

HTTP 请求报文的格式如下:

HTTP 请求的过程与原理;HTTP的报文结构_字段_03

HTTP 请求报文的第一行叫做请求行,后面的行叫做首部行,首部行后还可以跟一个实体主体。请求首部之后有一个空行,这个空行不能省略,它用来划分首部与实体。

请求行包含三个字段:

方法字段,有POST、GET等;

URL字段;

HTTP版本字段。

2.2 HTTP响应报文

HTTP响应报文格式如下:

HTTP 请求的过程与原理;HTTP的报文结构_首部_04

状态行包含了三个字段:协议版本字段、状态码和相应的状态信息。

实体部分是报文的主要部分,它包含了所请求的对象。

首部行首部可以分为四种首部,请求首部、响应首部、通用首部和实体首部。

通用首部和实体首部在请求报文和响应报文中都可以设置,区别在于请求首部和响应首部。