您的当前位置:首页正文

简单了解HTTP

来源:要发发知识网

简单看一下发送请求和接收数据

首先请求一个网址,我们最熟悉的知乎日报消息接口

然后我们用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