/ 知识库     / 试卷库

HTTP消息

当用户在浏览器中访问某个URL地址、单击网页的某个超链接或者提交网页上的form表单时,浏览器都会向服务器发送请求数据,即HTTP请求消息

服务器接收到请求数据后,会将处理后的数据回送给客户端,即HTTP响应消息

HTTP请求消息和HTTP响应消息统称为HTTP消息

请求消息:在HTTP中,请求消息是由请求行、请求头和实体内容三部分组成。

请求行

HTTP请求行位于请求消息的第一行,它包括三个部分,分别是请求方式、资源路径以及所使用的HTTP版本,具体示例如下:

GET /index.html HTTP/1.1

其中,GET是请求方式,index.html是请求资源路径,HTTP/1.1是协议版本。

注意:请求行中的每个部分需要用空格分隔,最后要以回车换行结束。

在HTTP的请求消息中,请求方式有GET、POST、HEAD等8种。

消息头

在HTTP请求消息中,请求行之后,便是若干请求消息头。

请求消息头主要用于向服务器端传递附加消息,例如,客户端可以接收的数据类型、压缩方法、等信息,具体示例如下:

Host: localhost:8080
Accept: image/gif, image/x-xbitmap
Referer: http://localhost:8080/itcast
Accept-Language: zh-cn,zh;
Accept-Encoding: gzip, deflate
Cache-Control: no-cacher

每个请求消息头都是由一个头字段名称和一个值构成,头字段名称和值之间用冒号(:)和空格()分隔,每个请求消息头以一个回车换行符标志结束。

注意:头字段名称不区分大小写,习惯上将单词的第一个字母大写。

响应消息:当服务器收到浏览器的请求后,会回送响应消息给客户端。一个完整的响应消息主要包括响应状态行、响应消息头和实体内容。

响应状态行

HTTP响应状态行位于响应消息的第一行,它包括三个部分:HTTP版本、一个表示成功或错误的整数代码(状态码)和对状态码进行描述的文本信息,具体示例如下: 

HTTP/1.1 200 OK

其中HTTP 1.1是通信使用的协议版本,200是状态,OK是状态描述,说明客户端请求成功。

注意:请求行中的每个部分需要用空格分隔,最后要以回车换行结束。

第一个数字有5种可能的取值,具体介绍如下:

1xx: 表示请求已接收,需要继续处理。

2xx: 表示请求已成功被服务器接收、理解并接受。

3xx: 为完成请求,客户端需进一步细化请求。

4xx: 客户端的请求有错误。

5xx: 服务器端出现错误。

响应消息头

位于响应状态行后面,服务器端通过响应消息头向客户端传递附加信息,包括服务程序名、被请求资源需要的认证方式、客户端请求资源的最后修改时间、重定向地址等信息。HTTP响应消息头的具体示例如下:

Server: Apache-Coyote/1.1
Content-Encoding: gzip
Content-Length: 80
Content-Language: zh-cn
Content-Type: text/html; charset=GB2312
Last-Modified: Mon,18 Nov 2013 18:23:51 GMT