Accept-Charset 没有对应的标头 , 服务器会把这个值放在 Content-Type中用 charset=xxx来表示 ,
例如 , 浏览器请求 GBK 或 UTF-8 的字符集 , 然后服务器返回的是 UTF-8 编码 , 就是下面这样
Accept-Charset: gbk, utf-8Content-Type: text/html; charset=utf-8
Accept-Language首部字段 Accept-Language 用来告知服务器用户代理能够处理的自然语言集(指中文或英文等) , 以及自然语言集的相对优先级 。可一次指定多种自然语言集 。和 Accept 首部字段一样 , 按权重值 q= 来表示相对优先级 。
Accept-Language: en-US,en;q=0.5
Accept-Encoding表示 HTTP 标头会标明客户端希望服务端返回的内容编码 , 这通常是一种压缩算法 。Accept-Encoding 也是属于内容协商 的一部分 , 使用并通过客户端选择 Content-Encoding 内容进行返回 。
即使客户端和服务器都能够支持相同的压缩算法 , 服务器也可能选择不压缩并返回 , 这种情况可能是由于这两种情况造成的:
- 要发送的数据已经被压缩了一次 , 第二次压缩并不会导致发送的数据更小
- 服务器过载 , 无法承受压缩带来的性能开销 , 通常 , 如果服务器使用 CPU 超过 80% , Microsoft 则建议不要使用压缩
Accept-Encoding: gzipAccept-Encoding: compressAccept-Encoding: deflateAccept-Encoding: brAccept-Encoding: identityAccept-Encoding: *Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5
上面的几种表述方式就已经把 Accept-Encoding 的属性列全了- gzip: 由文件压缩程序 gzip 生成的编码格式 , 使用 Lempel-Ziv编码(LZ77)和32位CRC的压缩格式 , 感兴趣的同学可以读一下 (https://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77)
- compress: 使用Lempel-Ziv-Welch(LZW)算法的压缩格式 , 有兴趣的同学可以读 (https://en.wikipedia.org/wiki/LZW)
- deflate: 使用 zlib 结构和 deflate 压缩算法的压缩格式 , 参考 (https://en.wikipedia.org/wiki/Zlib) 和 (https://en.wikipedia.org/wiki/DEFLATE)
- br: 使用 Brotli 算法的压缩格式 , 参考 (https://en.wikipedia.org/wiki/Brotli)
- 不执行压缩或不会变化的默认编码格式
- * : 匹配标头中未列出的任何内容编码 , 如果没有列出 Accept-Encoding , 这就是默认值 , 并不意味着支持任何算法 , 只是表示没有偏好
- ;q= 采用权重 q 值来表示相对优先级 , 这点与首部字段 Accept 相同 。
Content-Type: text/html; charset=UTF-8
在某些情况下 , 浏览器将执行 MIME 嗅探 , 并且不一定遵循此标头的值;为防止此行为 , 可以将标头 X-Content-Type-Options 设置为 nosniff 。Content-EncodingContent-Encoding 实体标头用于压缩媒体类型 , 它让客户端知道如何进行解码操作 , 从而使客户端获得 Content-Type 标头引用的 MIME 类型 。表示如下
Content-Encoding: gzipContent-Encoding: compressContent-Encoding: deflateContent-Encoding: identityContent-Encoding: brContent-Encoding: gzip, identityContent-Encoding: deflate, gzip
Content-LanguageContent-Language 实体标头用于描述面向受众的语言 , 以便使用户根据用户自己的首选语言进行区分 。例如Content-Language: de-DEContent-Language: en-USContent-Language: de-DE, en-CA
下面根据内容协商对应的请求/响应标头 , 我列了一张图供你参考 , 注意其中 Accept-Charset 没有对应的 Content-Charset , 而是通过 Content-Type 来表示 。文章插图
HTTP 认证HTTP 提供了用于访问控制和身份认证的功能 , 下面就对 HTTP 的权限和认证功能进行介绍
通用 HTTP 认证框架RFC 7235 定义了 HTTP 身份认证框架 , 服务器可以根据其文档的定义来检查客户端请求 。客户端也可以根据其文档定义来提供身份验证信息 。
请求/响应的工作流程如下:服务器以401(未授权) 的状态响应客户端告诉客户端服务器需要认证信息 , 客户端提供至少一个 www-Authenticate 的响应标头进行授权信息的认证 。想要通过服务器进行身份认证的客户端可以在请求标头字段中添加认证标头进行身份认证 , 一般的认证过程如下
推荐阅读
- 韩国学者潮州了解宣传单丛茶文化
- 一文教会你如何申请ios开发者账号
- 陈正雷太极拳 带你走进运动养生
- 办公室|办公室装修必须了解的“六不”原则
- 国际金融报|职场该怎么送礼一定要了解的事
- 茗山生态茶带您起了解茶的传播史
- 你对网站权重了解多少?
- 保养发动机皮带很重要,什么时候更换更合适?了解这些知识有帮助
- 一文看懂:重力、引力、引力子、弦理论、圈量子引力论之间的关系
- 专题片茶韵安溪,县长带你游走红网络