zoukankan      html  css  js  c++  java
  • 【HTTP】HTTP报文首部之通用首部详解

    这篇文章,单独来讲讲HTTP/1.1通用首部字段的内容:

  • Cache-Control
  • 控制缓存的行为,可用于请求及响应时.
    缓存请求指令:

    指令 参数 说明
    no-cache 强制向源服务器再次验证
    no-store 使用该指令时,暗示请求中包含机密信息.故该指令规定缓存不能在本地存储请求的任一部分
    max-age=[秒] 必须 响应的最大Age值
    max-stale(=[秒]) 可省略 可指示缓存资源,如果指令未指定参数值,无论过多久,都会接收响应;若指定了具体数值,即使过期,只要仍处于max-stale指定的时间内,仍旧会被客户端接收
    min-fresh=[秒] 必须 期望在指定时间内的响应仍有效
    no-transform 代理不可更改媒体类型
    only-if-cached 该指令要求缓存服务器不重新加载效应,也不会再次确认资源有效性.若发生请求缓存服务器的本地缓存无响应,则会返回状态码504 Gateway Time-out
    cache-extension - 新指令标记(token)

    缓存响应指令:

    指令 参数 说明
    public 可向任意方提供响应的缓存
    private 可省略 仅向特定用户返回响应
    no-cache 缓存前必须先确认其有效性
    no-store 使用该指令时,暗示响应中包含机密信息.故该指令规定缓存不能在本地存储响应的任一部分
    no-transform 代理不可更改媒体类型
    must-revalidate 代理会向源服务器再次验证即将返回的响应缓存目前是否仍然有效,若代理无法连接源服务器再次获取有效资源时,缓存必须给客户端一条504状态码
    proxy-revalidate 中间缓存服务器对缓存的响应有效性再进行确认
    max-age=[秒] 必须 响应的最大Age值
    s-maxage=[秒] 必须 公共缓存服务器响应的最大Age值.只适用于供多位用户使用的公共缓存服务器,对于向同一用户重复返回响应的服务器来说,这个指令没有任何作用
    cache-extension - 新指令标记(token)
  • Connection
  • 控制不再转发给代理的首部字段:
    用法:Connection:不再转发的首部字段名

  • Date
  • 表明创建HTTP报文的日期和时间

  • Pragma
  • HTTP/1.1之前版本的历史遗留字段,仅作为与HTTP/1.0的向后兼容定义
    用法:Pragma:no-cache
    该首部字段属于通用首部字段,但只用在客户端发送的请求中.所有的中间服务器如果都能以HTTP/1.1为基准,直接采用Cache-Control:no-cache即可,但是不现实,所以发送的请求中会同时含有以下两个首部字段:Cache-Control:no-cache和Pragma:no-cache

  • Trailer
  • 事先说明在报文主体后记录了哪儿些首部字段.可应用在HTTP/1.1版本分块传输编码时

  • Transfer-Encoding
  • 规定了传输报文主体时采用的编码方式,仅对分块传输编码有效

  • Upgrade
  • 用于检测HTTP协议及其他协议是否可使用更高的版本进行通信

  • via
  • 追踪客户端与服务器之间的请求和响应报文的传输路径

  • Warning
  • 通常告知用户一些与缓存相关问题的警告.格式如下:
    Warning: [警告码] [警告的主机:端口号] “[警告内容]” ([日期时间])
    HTTP/1.1警告码具体如下:

    警告码 警告内容 说明
    110 Response is stale(响应已过期) 代理返回已过期的资源
    111 Revalidation failed(再验证失败) 代理再验证资源有效性时失败(服务器无法到达等原因)
    112 Disconnection operation(断开连接操作) 代理与互联网连接被故意切断
    113 Heuristic expiration(试探性过期) 响应的使用期超过24小时(有效缓存的设定时间大于24小时情况下)
    199 Miscellaneous warning(杂项警告) 任意的警告内容
    214 Transformation applied(使用了转换) 代理对内容编码或媒体类型等执行了某些处理时
    299 Miscellaneous persistent warning(持久杂项警告) 任意的警告内容

    HTTP报文首部之通用首部详解到此结束,感谢您的阅读~
    最后,祝每一位改变世界的程序员,节日快乐~

查看全文
  • 相关阅读:
    Fiddler 教程
    Android 利用 aapt 解析 apk 得到应用名称 包名 版本号 权限等信息
    Android获取Manifest中<meta-data>元素的值
    Android资源混淆保护实践
    Android中捕获TTextView文本中的链接点击事件方法
    Android APK 手动命令编译、打包、签名步骤
    Android签名总结
    软件概要设计模板
    整理了一份React-Native学习指南
    appium简明教程(转)
  • 原文地址:https://www.cnblogs.com/zll-0405/p/12534150.html
  • Copyright © 2011-2022 走看看