本文概述
- 服务器驱动的协商
- 代理驱动的协商
- 透明谈判
任何包含实体的响应都可以进行协商, 包括错误响应。
在HTTP中, 有两种类型的内容协商, 服务器驱动的协商和代理驱动的协商。两种协商都是正交的, 因此可以结合使用或单独使用。一种称为透明协商的组合方法, 发生在原始服务器提供代理驱动的协商信息时, 该方法由缓存使用, 以为后续请求提供服务器驱动的协商。
服务器驱动的协商当发生服务器驱动的协商时, 将通过位于服务器上的算法为响应选择最佳表示形式。根据资源的可用表示形式, 选择所基于的内容。选择还基于请求消息中特定标头字段的内容或其他伪装在请求中的信息(例如客户端的网络地址)。
优点
- 当难以从可用表示中进行选择的算法难以描述给用户代理时, 这很有用。
- 当服务器希望将其“最佳猜测”与第一个响应一起发送给客户端时, 此功能很有用。
- 为了改善对服务器的猜测, 用户代理可以包括请求标头字段, 该请求标头字段描述其对此类响应的首选项。
- 对于服务器, 无法准确确定对任何给定用户而言最佳的选择。因此, 服务器需要完全了解用户代理的功能以及响应的预期用途。
- 它使源服务器实现和用于生成对请求的响应的算法变得复杂。
优点
- 当源服务器无法通过检查请求来确定用户代理的功能时, 如果响应将在常用尺寸上变化, 则使用它。
- 当公共缓存分配服务器负载并减少网络使用量时, 将使用它。
当需要第二个请求以获得最佳替代表示形式时, 代理驱动的协商会受到影响。
透明谈判它是服务器驱动的协商和代理驱动的协商的结合。如果以响应的可用表示形式的列表的形式提供缓存, 并且缓存完全理解了方差的维, 则缓存将能够代表源服务器执行服务器驱动的协商。
推荐阅读
- HTTP实体详解
- HTTP缓存解释
- 前端|前端 --- JavaScript WebAPI
- 前端|前端 --- JavaScript 语法基础
- html网页设计作业|web期末作业设计网页 HTML5+CSS大作业——明星个人主页(15页) 创作主页
- web大学生个人网站作业模|html大作业网页代码——神之刃游戏官网网页(6页) HTML+CSS+JavaScript web网页设计与开发