请求内容
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数据。
请求行与请求头是文本行,通过回车/换行符分隔(值为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数据。
相关文章推荐
- hbase入库
- JAXB: XML 与 Java之间的映射 (OXM)
- jQuery simplePage+AJAX plus分页插件用法实例
- TDD入门demo
- HDU 1678 Shopaholic(优先队列 + 排序 + 英文-我想哭)
- TDD入门demo
- jQuery刷新当前页
- Getting Started Synchronizing Files
- 制作图片浏览器
- week3——快速排序
- iOS之旅--轮播图封装使用教程
- HBase备份之导入导出
- 深入分析JavaWeb 25 -- 自定义标签开发案例和打包自定义标签库
- 一张图帮你决定要不要辞职
- 【Android 一般进阶】ListView滑动到顶部smoothScrollToPosition
- quartz (java定时任务实现事例)
- phpstorm10.0.3汉化方法:
- 转载:<context-param>与<init-param>的区别与作用
- 一些有用的网站。
- C#构建多线程应用程序(5) —— 使用System.Threading.Timer