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
 - 缓存
        
- 满足协商条件
            
- 使用缓存
 
 - 否则
            
- 请求源服务器
 
 
 - 满足协商条件