内容协商机制
-
指客户端和服务器端就响应的资源内容进行交涉,然后提供给客户端最合适的资源,内容协商会以响应资源的语言,字符集,编码方式等作为判断的基准
-
内容协商方式
-
客户端驱动( 两次请求 ): 客户端发起请求,服务器发送可选项列表,客户端做出选择后再发送第二次请求
-
服务器驱动( 一次请求,最常用 ): 服务器检查客户端的请求头部集并决定提供哪个版本的页面
-
透明协商: 某个中间设备( 通常是缓存代理 )代表客户端进行协商
-
服务器驱动协商
-
请求头部集
- Accept: 告知服务器发送何种媒体类型,对应Content-Type
- Accept-Language: 告知服务器发送何种语言,对应Content-Language
- Accept-Charset: 告知服务器发送何种字符集,对应Content-Type
- Accept-Encoding: 告知服务器采用何种编码,对应Content-Encoding
-
近似匹配 q机制 ( 权重值 )
// 优先接收荷兰语,没有就返回英语,不接受法语和土耳其语 Accept-Language: en;q=0.5, fr;q=0.0, nl;q=1.0 tr;q=0.0