请求内容

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数据。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值