美文网首页Front-end Related
从一个例子了解请求和响应中的参数

从一个例子了解请求和响应中的参数

作者: 虚玩玩TT | 来源:发表于2017-09-24 13:43 被阅读0次

    HTTP 协议规定了请求和响应的格式和行为,这里通过分析百度首页的请求和响应,来了解请求和响应中的各种参数。浏览器为Chrome。

    请求

    位置:Chrome ,Network,Headers,Request Headers

    GET / HTTP/1.1  //请求行
    Host: www.baidu.com  //请求的服务器的主机和端口号,从URL中截取
    Connection: keep-alive  //表示服务器和客户端是否保持连接
    Pragma: no-cache  //用于指定缓存指令
    Cache-Control: no-cache  //用于指定缓存指令,通常这两个合用
    Upgrade-Insecure-Requests: 1  //告诉服务器客户端支持自动升级http到https,并且响应的时候应该返回https
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36  //用户代理,就是指浏览器,表示浏览器的类型、版本
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8  //告诉服务器应该响应什么格式的文件,用逗号隔开,";q="表示优先级
    DNT: 1  //DO NOT TRACK,1表示开,提示服务器不要跟踪记录用户信息,对应的,0表示关,即跟踪
    Accept-Encoding: gzip, deflate, br  //告诉服务器浏览器支持的编码格式,并以这这种格式响应
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.6,en;q=0.4,ar;q=0.2,ja;q=0.2,en-US;q=0.2  //告诉服务器浏览器支持的语言,并响应这些语言的文件
    Cookie: xxx  //cookie随着请求一起发送个服务器
    

    响应

    位置:Chrome ,Network,Headers,Response Headers
    响应的消息体在 Chrome ,Network,Preview或Response中可以看到

    HTTP/1.1 200 OK  //响应行,对应请求行,状态码200,表示成功
    Bdpagetype: 2  //这里应该是百度自己定义的Bd即baidu,pagetype页面类型
    Bdqid: 0xcefff6d900bbab4b //同理 baidu q id
    Bduserid: 124652654  //同理,baidu user id
    Cache-Control: private  //表示仅客户端还可以缓存,代理服务器不能缓存
    Connection: Keep-Alive  //对应请求
    Content-Encoding: gzip  //对应请求,返回gzip格式的文件
    Content-Type: text/html;charset=utf-8  //对应请求,返回html文件,编码为utf-8
    Date: Sun, 24 Sep 2017 02:04:02 GMT  //响应创建时间
    Expires: Sun, 24 Sep 2017 02:04:02 GMT  //设置一个过期时间
    Server: BWS/1.1  //服务器的名称和版本
    Set-Cookie: xxx  //服务器设置的cookie
    Strict-Transport-Security: max-age=172800  //再次访问时,间隔时间在设置的172800s之间,会强制以https形式访问,之后则恢复正常,跟随URL
    X-Ua-Compatible: IE=Edge,chrome=1  //推荐使用那些引擎来渲染页面
    Transfer-Encoding: chunked  //表示输出内容长度不能确定,这跟http传输过程中的分块技术有关
    

    这样大致就分析完了,这里做个小结。

    请求中,Host 表示请求的主机和端口,由浏览器自动从URL中截取
    响应除了满足请求的条件,还可以“随意”设置一些字段

    请求 <===>响应

    按照请求,响应内容。

    • 请求行 ——> 响应行
    • Accept: text/html ——> Content-Type: text/html
    • Accept-Encoding: gzip ——> Content-Encoding: gzip
      缓存相关
    • If-None-Match ——> Etag
    • If-Modified-Since ——> Last-Modified
    还有一些没有提到的字段

    请求

    • Client-IP,客户端IP
    • From,客户端邮箱地址
    • Referer,提供了包含当前请求URI的文档的URL,即告诉服务器自己来自哪个页面
    • Accept-Charset,告诉服务器能够发送的字符集
    • ...

    响应

    • Allow,列出了可用的请求方法
    • Location,用于重定向
    • Content-MD5,主体的MD5校验和
    • ...

    相关文章

      网友评论

        本文标题:从一个例子了解请求和响应中的参数

        本文链接:https://www.haomeiwen.com/subject/qaqkextx.html