您的位置:首页 > 其它

请求内容

2016-02-17 11:29 239 查看
HTTP请求包含三个部分:请求行,请求头与请求体。

请求行与请求头是文本行,通过回车/换行符分隔(值为13字节,或是0x0D/值为10 字节,或是0x0A),在HTTP请求中使用这样的文本值,使得他们容易构建,解析和调试。空行(仅包含回车/换行符或者是仅有换行符)将请求头与请求体划分开来。

下述代码段包含一个HTTP请求示例,它来自于一个查询请求:

        GET /search?source=ig&h1=en&rlz=&q=ios&btnG=Google+Search HTTP/1.1            
请求行

        Host:www.google.com

        User-Agent:Mozilla/5.0 (Macintosh;Intel Mac OS X
10.7;rv:11.0)...

        Accept:text/html,application/xhtml+xml,application/xml;q=0.9

        Accept-Language:en,en-us;q=0.7,en-ca;q=0.3

        Accept-Encoding:gzip,deflate

        Connection:keep-alive

        Referer:http://www.google.com/ig?hl=en&source=wenhp

        Cookie:PREF=ID=fdf9979...
请求行是发送给服务器的第一行数据。请求行包含3方面主要信息:HTTP请求方法,请求URL,HTTP版本。

请求方法是个单词,标识了客户端请求的动作。由于区分大小写,下表中列出的方法都是大写的。

常见的请求方法及用法



紧跟请求行的是请求头,它向服务器提供额外的元数据。这些元数据可以描述客户端,进一步描述请求或是从服务器请求某种类型的响应。每个请求可以提供一个或多个头。Host头是HTTP1.1请求中唯一必须提供的头。它提供了客户端指定的原始主机名,还可以包含最初请求的URL中提供的端口号。HTTP服务器可以为多台主机提供内容。Host头帮助HTTP服务器了解最初的请求是发给哪台主机的。

说明:HTTP规范允许HTTP客户端与服务器之间的中介添加,删除,重排序以及修改HTTP头。因此,应用发出的请求在到达服务器时可能会出现一下这些情况:添加新的头,修改已有的头或者是删除某些头。

      虽然使用了有状态的TCP传输层,但HTTP却是个无状态协议。这意味着HTTP服务器并不会保留关于某个请求的任何信息以用在未来的请求中。Cookie提供了一种方式,可以将一些简单的状态信息存储到客户端,并在后续的请求中与服务器进行通信。

     HTTP头之后是可选的请求体。请求体可以是任意的字节序列,通过一个空行与头分隔开来。请求体必须遵循客户端与服务器之间预先确定的数据编码。对于Web浏览器来说,这通常是表单编码数据,但对于移动应用来说,该编码通常是XML或JOSN数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: