Home / cs-notes / Network / Protocol / HTTP / 应用 / 内容协商
- 通过内容协商返回最合适的内容
- 例如根据浏览器的默认语言选择返回中文界面还是英文界面
- 类型
- 服务端驱动
- 客户端设置特定首部字段,如
- Accept
- Accept-Language
- Accept-Charset
- Accept-Encoding
- 问题
- 服务器很难知道客户端的全部信息
- 客户端信息冗长
- HTTP/2 首部压缩
- 隐私风险
- HTTP 指纹识别技术
- 给定资源需要不同的展现形式
- 缓存效率降低
- 服务器实现趋于复杂
- 客户端设置特定首部字段,如
- 代理驱动
- 服务器换回
- 300 Multiple Choices
- 406 Not Acceptable
- 客户端从中选择最合适的资源
- 服务器换回
- 服务端驱动
- Vary
- Vary: Accept-Language
- 缓存
- 满足协商条件
- 使用缓存
- 否则
- 请求源服务器
- 满足协商条件