HTTP 内容协商2024 年 8 月 29 日 | 阅读 3 分钟 大多数 HTTP 响应都包含一个实体,其中包含供用户解释的信息。通常,它用于为用户提供与请求对应的最佳可用实体。不幸的是,对于缓存和服务器而言,并非所有用户对什么是最佳的都有相同的偏好。这就是为什么 HTTP 具有多种“内容协商”机制的原因。当有多个表示形式可用时,选择给定响应的最佳表示形式的过程。 任何包含实体主体的响应都可能需要协商,包括错误响应。 在 HTTP 中,有两种类型的内容协商:服务器驱动的协商和代理驱动的协商。这两种协商都是正交的,因此可以组合使用或单独使用。一种组合方法称为透明协商,当原始服务器提供代理驱动协商的信息时,缓存使用这些信息为后续请求提供服务器驱动的协商。 服务器驱动的协商当发生服务器驱动的协商时,响应的最佳表示形式的选择由位于服务器上的算法进行。基于资源的可用表示形式进行选择,以及内容。选择还基于请求消息中特定标头字段的内容或有关请求的其他信息(例如客户端的网络地址)。 优点
缺点
代理驱动的协商当发生代理驱动的协商时,用户代理在从原始服务器收到初始响应后,执行响应的最佳表示形式的选择。在代理驱动的协商中,选择基于响应的可用表示形式的列表,该列表包含在初始响应的标头字段或实体主体中,每个表示形式都由其自己的 URI 标识。可以由用户从生成的菜单中手动选择,也可以自动执行从表示形式列表中的选择。 优点
缺点代理驱动的协商在需要第二个请求才能获得最佳备用表示形式时会受到影响。 透明协商它是服务器驱动的协商和代理驱动的协商的组合。如果以响应的可用表示形式列表的形式提供缓存,并且缓存完全理解变量的维度,则缓存将能够代表原始服务器执行服务器驱动的协商。 下一个主题HTTP 状态码 |
我们请求您订阅我们的新闻通讯以获取最新更新。