http请求报文详解

http请求报文的组成

http请求报文由请求行,请求头,请求体三部分组成。

http请求报文详解

请求行主要包括:

        请求的方法,最常用的主要是GET,POST,OPTIONS表示查询web服务器的性能。

        请求的url,比如/person/getById,

        HTTP协议:http1.1

请求头就是我们常说的头部信息,比如Content-Type,Host,Origin等

请求体就是请求参数,比如根据id查询时,id的值等,本章我们重点介绍下常见的请求头属性

它们之间的关系就像你点了一份外卖一样。

http请求报文详解

常见的请求头属性

下面是摘自www.baidu.com和一个示例网站的请求头

http请求报文详解

http请求报文详解

(1) Accept

        指定客户端能够接受的内容类型,内容类型的先后顺序表示客户端接受的先后顺序

        比如:Accept:text/html,application/xml

(2) Accept-Encoding

        指定客户端浏览器可以支持的web服务器返回内容压缩编码类型

        允许服务器在将输入内容发送到客户端以前进行压缩,以节约带宽。

        比如:Accept-Encoding:gzip,deflate

(3) Accept-Language

        指定http客户端浏览器用来展示返回信息所先选择的语言

        比如:

        Accept-Language:zh-cn,zh;q=0.5   后面的q表示权重

(4) Connection

        表示是否需要持久连接,

        比如:Connection:keep-Alive 

(5) Content-Length

        用于描述http消息实体的传输长度.需要注意的是:在http协议中,消息实体的长度和消息实体的传输长度是有区别的。

        比如说gzip压缩下,消息实体长度是压缩前的长度,但是消息实体的传输长度是gzip压缩后的长度

(6) Content-Type

        显示此http请求提交的内容类型

        比如:Content-Type:application/x-www-form-urlencoded;charset:UTF-8

        "application/x-www-form-urlencoded"是浏览器的默认值,表示表单数据向服务器提交时所采用的编码类型。

(7) Cookie

        http请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器

(8) Host

        请求的web服务器域名地址

        例:www.baidu.com

(9) Origin

        跨域的时候,get,post都会显示origin,同域的时候get不显示origin,post显示origin

(10) Referer

        包含一个url,用户从该url代表的页面触发访问当前请求的页面

(11) User-Agent

        http客户端运行的浏览器类型,详情。后台可以根据该头部信息,判断当前的http请求的客户端浏览器类型

(12) X-Requested-With

        用来判断客户端的请求是Ajax请求(异步)还是其他请求(同步)

        后台可以利用request.getHeader("x-requested-with")为null判断是同步请求,为XMLHttpRequest则是Ajax异步请求

        例:X-Requested-With:XMLHttpRequest