1. HTTP协议的请求和响应报文中必定包含HTTP首部。首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。在请求中,HTTP报文由方法、URI、HTTP版本、HTTP首部字段等部分构成。在响应中,HTTP报文由HTTP版本、状态码(数字和原因短语)、HTTP首部字段3部分构成。
  2. 客户端和服务器端以HTTP协议进行通信的过程中,无论是请求还是响应都会使用首部字段,它能起到传递额外重要信息的作用。首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容。
  3. 当HTTP报文首部中出现了两个或两个以上具有相同首部字段名时会怎么样?这种情况在规范内尚未明确,根据浏览器内部处理逻辑的不同,结果可能并不一致。有些浏览器会优先处理第一次出现的首部字段,而有的则会优先处理最后出现的首部字段。
  4. HTTP四种首部字段类型
    1. 通用首部字段:请求报文和响应报文两方都会使用的首部。
    2. 请求首部字段:从客户端向服务器端发送请求报文时使用的首部。
    3. 响应首部字段:从服务器端向客户端返回响应报文时使用的首部。
    4. 实体首部字段:针对请求报文和响应报文的实体部分使用的首部。
  5. 通用首部字段
    1. Cache-Control:通过指定首部字段Cache-Control的指令,就能操作缓存的工作机制。
    2. Connection:控制不在转发给代理的首部字段;管理持久连接。
    3. Data:表明创建HTTP报文的时间和日期。
    4. Pragma:只用在客户端发送的请求中,所有的中间服务器不返回缓存的资源。
    5. Trailer:事先说明报文主体后记录了哪些首部字段。同样可以用在分块传输编码时。
    6. Transfer-Encoding:规定了传输报文主体时采用的编码方式。
    7. Upgrade:用于检测HTTP协议及其他协议是否可以使用更高的版本进行通信。
    8. Via:为了追踪客户端与服务器之间的请求和响应报文的传输路径。
    9. Warning:通常会告知用户一些与缓存相关的问题的警告。
  6. 请求首部字段:请求首部字段是从客户端往服务器发送请求的报文中所使用的字段,用于补充请求的附加信息、客户端信息、对响应内容相关的优先级等内容。
    1. Accept:该字段可通知服务器,用户代理能够处理的媒体类型及媒体类型的相对优先级。
    2. Accept-Charset:用来通知服务器用户代理支持的字符集及字符集的相对优先顺序,可一次性指定多种字符集。
    3. Accept-Encoding:用来告知服务器用户代理支持的内容编码及内容编码的优先级顺序。
    4. Accept-Language:用来告知服务器用户代理嫩巩固处理的自然语言集(中文或英文等),以及自然语言集的相对优先级。
    5. Authorization:用来告知服务器,用户代理的认证信息。
    6. Expect:客户端使用首部字段Except来告知服务器,期望出现的某种指定行为。
    7. From:用来告知服务器使用用户代理的用户的电子邮件地址。
    8. Host:告知服务器,请求的资源所处的互联网主机名和端口号。Host首部字段在HTTP/1.1规范内是唯一一个必须包含在请求内的首部字段。
    9. If-Match:类似于If-xxx这样的请求首部,可以称为条件请求。
    10. If-Modified-Since:告知服务器若该字段值早于资源的更新时间,则希望能处理该请求。
    11. If-None-Match:该字段值得实体标记值与请求资源的ETag不一致时,它就告知服务器处理该请求。
    12. If-Range:它告知服务器若指定的If-Range字段值和请求资源的ETag值或时间相一致时,则作为范围请求处理。反之则返回全体资源。
    13. If-Unmodified-Since:告知服务器,指定的请求资源只有在字段值内指定的日期时间之后,未发生更新的情况下,才能处理请求。
    14. Max-Forwards:通过TRACE方法或OPTIONS方法,发送包含首部字段Max-Forwards的请求时,该字段以十进制整数形式指定可经过的服务器最大数目。当服务器接收到Max-Forwards值为0的请求时,则不再进行转发,而是直接返回响应。
    15. Proxy-Authorization:客户端会发送包含首部字段Proxy-Authorization的请求,以告知服务器认证所需要的信息。
    16. Range:告知服务器资源的指定范围。
    17. TE:告知服务器客户端能够处理响应的传输编码方式及相对优先级。
    18. User-Agent:将创建请求的浏览器用户代理名称等信息传达给服务器。
  7. 响应首部字段:响应首部字段是由服务器端向客户端返回响应报文中所使用的字段,用于补充响应的附加信息、服务器信息、以及对客户端的附加要求等信息。
    1. Accept-Ranges:用来告知客户端服务器是否能够处理范围请求,以指定获取服务器端某个部分的资源。
    2. Age:告知客户端,源服务器在多久前创建了响应。单位秒。
    3. ETag:告知客户端实体标识,它是一种可将资源以字符串形式做唯一标识的方式。
    4. Location:可以将响应接收方引导至某个与请求URI位置不同的资源。
    5. Proxy-Authenticate:把由代理服务器所要求的认证信息发送给客户端。
    6. Retry-After:告知客户端应该在多久之后再次发送请求。
    7. Server:告知客户端当前服务器上安装的HTTP服务器应用程序的信息。
    8. Vary:可对缓存进行控制,源服务器回向代理服务器传达关于本地缓存使用方法的命令。
    9. WWW-Authenticate:用于HTTP访问认证。
  8. 实体首部字段:包含在请求报文和响应报文中的实体部分所使用的首部,用于补充内容的更新时间等与实体相关的信息。
    1. Allow:用于通知客户端能够支持Request-URI指定资源的所有HTTP方法。
    2. Content-Encoding:告知客户端服务器对实体的主体部分选用的内容编码方式。(gzip/compress/deflate/identity)
    3. Content-Language:告知客户端,实体主体使用的自然语言。(中文或英文等语言)
    4. Content-Length:表明了实体主体部分的大小。
    5. Content-Location:给出与报文主体返回资源对应的URI。
    6. Content-MD5:是一串由MD5算法生成的值,其目的在于检查报文主体在传输过程中是否保持完整,以及确认传输到达。
    7. Content-Range:针对范围请求,返回响应时使用的首部字段,能告知客户端作为相应返回的实体的哪个部分符合范围请求。
    8. Content-Type:说明了实体主体内对象的媒体类型,该字段用type/subtype形式赋值。
    9. Expires:会将资源失效的日期告知客户端。
    10. Last-Modified:指明资源最终修改的时间。
  9. 管理服务器与客户端之间状态的Cookie。其工作机制是用户识别以及状态管理。调用Cookie时,由于可校验Cookie的有效期,以及发送方的域、路径、协议等信息。
  10. Set-Cookie字段的几个属性:
    1. expires属性:指定浏览器可发送Cookie的有效期。
    2. path属性:可用于限制指定Cookie的发送范围的文件目录。
    3. domain属性:指定的域名。
    4. secure属性:用于限制Web页面仅在HTTPS安全连接时才可以发送Cookie。
    5. HTTPOnly:Cookie的扩展功能,它使JavaScript脚本无法获得Cookie。其主要目的是为了防止跨站脚本攻击对Cookie的信息窃取。

转载于:https://www.cnblogs.com/lizhengtan/p/5494089.html

HTTP知识普及系列:HTTP首部相关推荐

  1. HTTP知识普及系列:HTTP返回状态码

    状态码 1XX 信息性状态码 接受的请求正在处理 2XX 成功状态码 请求正常处理完毕 3XX 重定向状态码 需要进行附加操作以完成请求 4XX 客户端错误状态码 服务器无法处理请求 5XX 服务器端 ...

  2. [GO语言基础] 二.编译运行、语法规范、注释转义及API标准库知识普及

    作为网络安全初学者,会遇到采用Go语言开发的恶意样本.因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识:另一方面是分享与读者,希望大家一起进步.前文介绍了什么是GO语言 ...

  3. 第二十六期:100 个网络基础知识普及,看完成半个网络高手

    本篇文章是关于100个网络基础知识普及,看完成半个网络高手!下面,我们一起来看. 作者:佚名来源 本篇文章是关于100个网络基础知识普及,看完成半个网络高手!下面,我们一起来看. 1)什么是链接? 链 ...

  4. [知识普及]世界知名洋酒

    [知识普及]世界知名洋酒 苏格兰威士忌 家豪威士忌 CARDHU 尊荣极品威士忌 SWING 尊尼获加黑方 JOHNNIE WALKER BLACK LABEL 尊尼获加红方 JOHNNIE WALK ...

  5. 《变形金刚》真人电影知识普及贴-转帖

    <变形金刚>其实--bug确实非常多.一些简单的例子,擎天柱在女人和男孩掉下去的时候来了一记很阴的腿招.大黄蜂借助失重神教神功成功接住男女主角,后面擎天柱也上演了一次失重神教真人表演等等. ...

  6. 40、100 个网络基础知识普及

    100 个网络基础知识普及,看完成半个网络高手! 1)什么是链接? 链接是指两个设备之间的连接.它包括用于一个设备能够与另一个设备通信的电缆类型和协议. 2)OSI 参考模型的层次是什么? 有 7 个 ...

  7. 电脑CPU/GPU处理器知识普及

    处理器知识普及 处理器主要分为两种:CPU与GPU,二者针对不同的业务进行工作: CPU主要处理数量小.难度大的任务,能比较好的处理单线程任务: GPU主要处理数量达,难度小的任务,比如图形渲染.多线 ...

  8. 干货满满!100个网络基础知识普及(附带答案解析)

    本篇文章是关于100个网络基础知识普及,看完成半个网络高手!下面,我们一起来看. 1)什么是链接? 链接是指两个设备之间的连接.它包括用于一个设备能够与另一个设备通信的电缆类型和协议. 2)OSI 参 ...

  9. 游戏的分类,知识普及

    游戏的分类,知识普及 游戏的分类,知识普及 关键词: 游戏 知识 分类 ┊ 游戏类 ┊ 推荐: ┊ 来源: 我爱水煮鱼 ┊ 收藏 游戏,大家并不陌生,可是你知道你玩的游戏是什么类型吗?游戏有多少分类吗 ...

最新文章

  1. 张钹院士:探索第三代人工智能,需要勇闯无人区的人才
  2. Delphi CxGrid 汇总(3)
  3. 分享一个有趣的学习方法,欢迎一起探讨如何提高学习兴趣作者:1-2-3 来源:博客园 发布时间:2009-03-09 16:20 阅读:2820 次 原文链接 [收藏]
  4. Python数据类型知识点
  5. SRM 591 div1 275
  6. python orm框架sqlalchemy_python ORM框架:SqlAlchemy
  7. 记,NSProxy需要实现哪些方法?
  8. php html5 案例,35个非常好的HTML5+CSS3实例
  9. css窗口最大化,你如何使用css变换与jquery和地址窗口最大化不一致?
  10. @WebListener 注解方式实现监听(eclipse和idea)
  11. 机器学习- 吴恩达Andrew Ng - week3-1 Classification
  12. 如何安装Bodymovin插件
  13. 最新米酷6.26影视源码+解析接口+步骤
  14. ccs加载out文件,TI CCS3.3 out文件转bin文件说明
  15. 日语 N2 考试 时间分配、分值
  16. 三角函数π/2转化_数学集训营 | NO.16 任意角的三角函数之必考点
  17. gsm手机影响计算机屏幕会怎么样,手机的辐射对孕妇的危害有多大
  18. Ubuntu- packages have unmet dependencies问题及修改Ubuntu源
  19. 2022最新常用API接口
  20. 微信小程序开发——登录登出示例

热门文章

  1. 利用Aria2高速下载网盘文件
  2. java字符串匹配dp_[OI]字符串DP小结
  3. 无线网络虚拟服务器,无线虚拟局域网
  4. python对数组的操作_Python对数组的基本操作
  5. ROS配置分布式通信
  6. 使用python构建三层神经网络、softmax函数
  7. html乱码框框,springmvc+font-awesome开发出的页面显示方框乱码的解决方法
  8. python去除中间空格只留一个_python 删除字符串中的连续空格只保留一个
  9. python堆模块_python内置堆模块
  10. linux 宽字符串,C语言中的多字节字符与宽字符