简单看一下发送请求和接收数据
首先请求一个网址,我们最熟悉的知乎日报消息接口
然后我们用Chrome自带的开发者工具来查看一下这次请求的请求头
Request Headers
GET /api/4/news/latest HTTP/1.1
Host:
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8
一个完整的请求是由以下组成
- 请求方法
- Request Uri
- http协议版本
- 服务器地址
- 请求首部字段(Connection以及后面的字段)
- 内容实体(这里没有实体)
当我们的服务器接收到请求,那么就会给我们返回
Response Headers
HTTP/1.1 200 OK
Date: Wed, 23 Nov 2016 12:34:31 GMT
Content-Type: application/json; charset=UTF-8
Transfer-Encoding: chunked
Etag: W/"5b1c62c079999ad155b99ed987f581b3be9363eb"
X-Backend: zhihu-daily.zhihu-daily-web.da6ac16e
Content-Encoding: gzip
X-Req-ID: 2AADF158358CD7
Server: ZWS
Vary: Accept-Encoding
HTTP为不保存状态的协议
什么叫不保存状态的协议?
持久化连接
Cookie
Response Headers
HTTP/1.1 200 OK
Server: bfe/1.0.8.18
Date: Wed, 23 Nov 2016 13:03:42 GMT
Content-Type: text/html;charset=utf-8
Content-Length: 19119
Connection: keep-alive
Cache-Control: no-cache
Content-Encoding: gzip
Set-Cookie: H_WISE_SIDS=107504_108269_100273_111887_100103_111914_107851_103342_111962_110773_110631_110642_110020_107800_111123_110610_110717_110693_111870_110497_110010_111550_107917_109586_111326_111927_109588_110655_107311_111280_110031_111216_110085; path=/;
Set-Cookie: BDSVRTM=148; path=/
Strict-Transport-Security: max-age=604800
Traceid: 147990622201950656101683597674316466511
Set-Cookie: __bsi=12477407333812093255_00_108_R_N_153_0303_C02F_N_I_I_0; expires=Wed, 23-Nov-16 13:03:47 GMT; path=/
当我们请求服务器时,服务器会通过Set-Cookie字段来通知我们客户端保存Cookie,所以当我们客户端保存了这个Cookie,并且下次请求用这个Cookie来请求的话,服务器就会发现我们的Cookie,并且来查找当前是哪个客户端发来的请求,然后对比服务器的记录来获得之前的状态信息
最后
爱生活,爱小丽,爱Android