《图解HTTP》前端基础系列二
一、内容协商机制
指客户端与服务器之间的就响应资源内容进行交涉,然后给客户端提供最合适的资源。内容协商以响应资源的语言、字符集编码方式等作为判断的基准。
判断的字段有:
Accept
Accept-Charset
Accept-Encoding
Accept-Language
Content-Language
3类内容协商
1.服务器驱动协商
在服务器端自动处理,以浏览器发送的信息为判定依据,不一定能筛选出最优内容。
2.客户端驱动协商
用户从浏览器显示的可选项列表中手动选择。比如:切换浏览器页面的桌面版和手机版。
3.透明协商
上述两种方式的结合。
二、状态码
状态码是告知客户端,从服务器返回的请求结果。
其中
204:浏览器显示的页面没有更新
206:客户端只请求部分内容,服务器成功执行该部分
301:永久性重定向
302:临时性重定向(只允许本次)
400:请求报文中有语法错误
401:如果是初次,显示弹窗验证页面;如果不是初次,显示认证失败
403:请求被拒绝,服务器就不告诉你为啥(可能是未获得文件系统权限,访问权限等)
404:服务器上无法找到请求的资源
500:Web应用存在BUG
503:服务器超负载或停机维护
三、HTTP的某些首部字段
1.Cache-Control(可以控制缓存行为)
Cache-Control:public 表明其他用户也能利用缓存
Cache-Control:private 缓存服务器只为特定用户提供服务
Cache-Control:no-cache 防止从缓存中返回过期的资源
2.Connection(控制不再转发给代理;管理持久连接)
Connection:close 关闭持久连接
Connection:keep-alive 保持持久连接
3.Transfer-encoding(规定报文的编码方式)
Transfer-encoding:chunked 采用分块传输编码
4.Accept(用户代理能够处理的媒体类型和优先级)
Accept:text/html, image/jpeg, video/mpeg; q=0.9, q=0.8
表明浏览器支持文本文件,图片,视频的显示;q为优先级的权值,缺省值为1,故而上例的优先级为:视频>图片>文本
5.Accept-Charset(通知服务器用户代理的字符集和优先顺序)
Accept-Charset:iso-8859-5, unicode-1-1; q=0.8
6.Accept-encoding(内容编码和优先级)
Accept-encoding:gzip, deflate
grip和deflate是不同的压缩方式
7.DNT(拒绝个人信息被收集)
DNT:1
其中0表示同意被追踪;1表示拒绝被追踪。