• 全国 [切换]
  • 二维码
    晒展网

    晒展APP

    手机也能玩展会,信息同步6大终端平台!

    微信小程序

    微信公众号

    当前位置: 首页 » 行业新闻 » 热点新闻 » 正文

    网络面试-0x03http 有哪些常见的请求头以及作用

    放大字体  缩小字体 发布日期:2020-01-18 10:31:28   浏览次数:292  发布人:677c****  IP:117.173.23.***  评论:0
    导读

    一、是什么?定义:http头字段【http header fields】,指的是在超文本传输协议(http)的请求和响应消息中的消息头部分; 它们定义了一个超文本传输协议事务中的操作参数GET /home.html HTTP/1.1 Host: developer.mozilla.org User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9






    一、是什么?

    定义:http头字段【http header fields】,指的是在超文本传输协议(http)的请求和响应消息中的消息头部分;

    它们定义了一个超文本传输协议事务中的操作参数

    GET /home.html HTTP/1.1 Host: developer.mozilla.org User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Referer: https://developer.mozilla.org/testpage.html Connection: keep-alive Upgrade-Insecure-Requests: 1 If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMT If-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a" Cache-Control: max-age=0

    分类

    通用首部字段、请求首部字段、响应首部字段、实体首部字段、为cookie服务的首部字段、 其他首部字段

    字段名 说明 示例
    Accept 能够接受的回应内容类型 Accept: text/plain
    Accept-Charset 能够接受的字符集 Accept-Charset: utf-8
    Accept-Encoding 能够接受的编码方式列表 Accept-Encoding: gzip, deflate
    Accept-Language 能够接受的回应内容的自然语言列表 Accept-Language: en-US
    Authorization 用于超文本传输协议的认证的认证信息 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
    Cache-Control 用来指定在这次的请求/响应链中的所有缓存机制都必须遵守的指令 Cache-Control: no-cache
    Connection 该浏览器想要优先使用的连接类型 Connection: keep-alive Connection: Upgrade
    cookie 服务器通过Set-cookie发送的一个超文本传输协议cookie cookie: $Version=1; Skin=new;
    Content-Length 以8字节数组 (8位的字节)表示的请求体的长度 Content-Length: 348
    Content-Type 请求体的多媒体类型 Content-Type: application/x-www-form-urlencoded
    Date 发送该消息的日期和时间 Date: Tue, 15 Nov 1994 08:12:31 GMT
    Expect 表明客户端要求服务器做出特定的行为 Expect: 100-continue
    Host 服务器的域名(用于虚拟主机 ),以及服务器所监听的传输控制协议端口号 Host: en.wikipedia.org:80 Host: en.wikipedia.org
    If-Match 仅当客户端提供的实体与服务器上对应的实体相匹配时,才进行对应的操作。主要作用:用作像 PUT 这样的方法中,仅当从用户上次更新某个资源以来,该资源未被修改的情况下,才更新该资源 If-Match: "737060cd8c284d8af7ad3082f209582d"
    If-Modified-Since 用于确认代理或客户端拥有的本地资源的有效性;指定的时间早于更新资源的时间,则有效处理,否则,返回304 Not modified的响应 if-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
    If-None-Match 允许在对应的内容未被修改的情况下返回304未修改 If-None-Match: "737060cd8c284d8af7ad3082f209582d"
    If-Range 如果该实体未被修改过,则向我发送我所缺少的那一个或多个部分;否则,发送整个新的实体 If-Range: "737060cd8c284d8af7ad3082f209582d"
    Range 仅请求某个实体的一部分 Range: bytes=500-999
    User-Agent 浏览器的浏览器身份标识字符串 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0
    Origin 发起一个针对 跨来源资源共享 的请求 Origin: http://www.example-social-network.com

    三、使用场景 —— 协商缓存

    利用【Last-Modified,If-Modified-Since】和【ETag、If-None-Match】这两对请求头响应头来管理

    Last-Modified 表示本地文件最后修改日期,浏览器会在request header加上If-Modified-Since(上次返回的Last-Modified的值),询问服务器在该日期后资源是否有更新,有更新的话就会将新的资源发送回来

    Etag就像一个指纹,资源变化都会导致ETag变化,跟最后修改时间没有关系,ETag可以保证每一个资源是唯一的

    If-None-Match的header会将上次返回的Etag发送给服务器,询问该资源的Etag是否有更新,有变动就会发送新的资源回来

    而强制缓存不需要发送请求到服务端,根据请求头expires和cache-control判断是否命中强缓存






    会话状态

    cookie,类型为「小型文本文件」,指某些网站为了辨别用户身份而储存在用户本地终端上的数据,通过响应头set-cookie决定

    作为一段一般不超过 4KB 的小型文本数据,它由一个名称(Name)、一个值(Value)和其它几个用于控制 cookie 有效期、安全性、使用范围的可选属性组成

    cookie 主要用于以下三个方面:

    1. 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
    2. 个性化设置(如用户自定义设置、主题等)
    3. 浏览器行为跟踪(如跟踪分析用户行为等



    公众号:技术小难

    简书

    博客园 链接需要替换

    CSDN

    知乎

    掘金

    segmentfault

    本文由mdnice多平台发布

     
    (文/匿名(若涉版权问题请联系我们核实发布者) / 非法信息举报 / 删稿)
    打赏
    免责声明
    • 
    本文为昵称为 677c**** 发布的作品,本文仅代表发布者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,发布者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们154208694@qq.com删除,我们积极做(权利人与发布者之间的调停者)中立处理。郑重说明:不 违规举报 视为放弃权利,本站不承担任何责任!
    有个别老鼠屎以营利为目的遇到侵权情况但不联系本站或自己发布违规信息然后直接向本站索取高额赔偿等情况,本站一概以诈骗报警处理,曾经有1例诈骗分子已经绳之以法,本站本着公平公正的原则,若遇 违规举报 我们100%在3个工作日内处理!
    0相关评论
     

    (c)2008-2022 展会信息发布,找展会,请上晒展网All Rights Reserved.