http请求的一些解释

来源:互联网 发布:天猫淘宝商城童装女 编辑:程序博客网 时间:2024/06/10 00:05
下面是一个http请求:<br />
GET /baidu/blog/item/6605d1b4eb6433738ad4b26d.html HTTP/1.1 <br />
Host: hi.baidu.com <br />
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6 <br />
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5<br />
Accept-Language: zh-cn,zh;q=0.5 <br />
Accept-Encoding: gzip,deflate <br />
Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7<br />
Keep-Alive: 300 <br />
Connection: keep-alive <br />
Referer: http://hi.baidu.com/baidu <br />

Cookie: BAIDUID=AFB70E986AC48B336ABAB7505CDD1C76; <br />


关于Host、User-Agent、等的说明如下:

Accept:                              告诉服务器能够发送哪些媒体类型

Accept-Charset:              告诉服务器能够发送哪些字符集

Accept-Encoding:           告诉服务器能够发送哪些编码方式

Accept-Language:          告诉服务器能够发送哪些语言

Connection:                     允许客户端和服务器指定与请求/响应连接有关的选型

Host:                                 给出了接收请求的服务器的主机名和端口号

Referer:                            提供了包含当前请求URI的文档的URL

User-Agent:                     将发起请求的应用程序名称告知服务器

Cookie:                             客户端用它向服务端传送一个令牌——它不是真正的安全首部,但确实隐含了安全功能

Cookie2:                           用来说明请求端支持的cookie版本。


HTTP请求报文解剖

HTTP请求报文由3部分组成(请求行+请求头+请求体):



下面是一个实际的请求报文:



①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。不过,当前的大多数浏览器只支持GET和POST,Spring 3.0提供了一个HiddenHttpMethodFilter,允许你通过“_method”的表单参数指定这些特殊的HTTP方法(实际上还是通过POST提交表单)。服务端配置了HiddenHttpMethodFilter后,Spring会根据_method参数指定的值模拟出相应的HTTP方法,这样,就可以使用这些HTTP方法对处理方法进行映射了。

②为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL,③是协议名称及版本号。

④是HTTP的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。

⑤是报文体,它将一个页面表单中的组件值通过param1=value1&param2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但报文体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html? param1=value1&param2=value2”的方式传递请求参数。

对照上面的请求报文,我们把它进一步分解,你可以看到一幅更详细的结构图:

 


参考:http://www.iteye.com/topic/1124408


0 0
原创粉丝点击