上一篇大概的介绍了一个HTTP请求的全过程。这篇我们来具体看下HTTP报文的构成,这对Android的网络请求开发及调试有着重要作用。
请求和响应报文,这个我们可以通过抓包工具Fiddler等查看。它们实际是由请求方法、请求 URI、协议版本、可选的请求首部字段 和内容实体构成的。照例放一个截图(cr 图解HTTP),红线以上是请求报文,红线下是响应报文。
URI和版本就是请求指向的位置和HTTP协议的版本,下面着重介绍一下方法和首部字段。
1、请求方法
请求方法就是上一篇提到的GET、POST几个常用的。需要划线的是,GET和POST的区别。
GET方法表示从指定的资源请求数据,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的。而POST方法表示向指定的资源提交数据,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的。举例:
GET方法请求的URL:/test/getPeople?name1=value1&name2=value2
POST方法请求的报文:/test/getPeople HTTP/1.1
Host: www.example.com
name1=value1&name2=value2
2、HTTP首部
下图是一个请求报文的首部和响应报文的首部。
HTTP首部是构成HTTP报文的重要要素,它为浏览器和服务器提供了报文主体大小、所使用的 语言、认证信息等内容。开发也可以在这里添加各种附加信息来保证请求正常获取。
首部字段的格式为 :
首部字段名:字段值
如Content-Type: text/htm。也可以多个值如Keep-Alive: timeout=15, max=100。
首部字段根据实际用途被分为四种类型:
a.通用首部字段:请求报文和响应报文都会使用的首部
b.请求首部字段:从客户端向服务端发送请求报文时使用的首部,补充了客户端信息&#x