- 1、本文档共69页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
验证 服务器端通过对请求中的验证器与本地的验证器进行比较, 如果相同,则返回一个特定状态码(通常为304(没有改变))的响应并且此响应不包含实体主体; 否则,服务器就返回完整响应(包含实体主体)。 * 验证条件的请求头域 If-Modified-Since If-None-Match If-Unmodified-Since If-Match If-Range * Cache-Control头 Cache-Control常用头域被用于指定指令,此指令必须被在请求/响应链上的所有缓存机制遵守。这些指令指定防止缓存干涉请求或响应的行为。 * 请求头中Cache-Control的指令 cache-request-directive = no-cache | no-store | max-age = delta-seconds | max-stale [ = delta-seconds ] | min-fresh = delta-seconds | no-transform | only-if-cached | cache-extension * 响应头中Cache-Control的指令 cache-response-directive = public | private [ = 1#field-name ] | no-cache [ = 1#field-name ] | no-store | no-transform | must-revalidate | proxy-revalidate | max-age = delta-seconds | s-maxage = delta-seconds | cache-extension * 指令分类 限制什么是可缓存的(源) 限制什么是可以存储的(源或客户端) 修改基本的过期规则(源或客户端) 控制缓存的重验证或者重加载(客户端) 控制实体的转换 扩展指令 * 参考文献 RFC2616:Hypertext Transfer Protocol -- HTTP/1.1 谢希仁: 计算机网络 * * * * * * 请求行位于请求报文中的第一行,包含“方法”,请求的URI,HTTP版本,最后一个回车换行结尾,方法,URI,版本之间用空格隔开 头部行每个头部以及它的值一行,以回车换行结尾,其格式是头部名: 空格 值 * * 先详细地看下请求行中的各个部分 * * 不过实际测试中发现即使包含了完整的URI,如果Host头域中的主机名与完整URI中主机名不一致时,服务器返回400 * * * * * 既然IE默认使用的是HTTP/1.1协议,为什么IE的默认请求中有Connection: Keep-Alive头 * 盗亦有道 * * * * * * * 只要当前时间没有超过过期的时间,则缓存的文件就是“有效”的,否则需要回源验证 * 持久连接 也称为HTTP Keep-alive或者HTTP连接重用 其思想是在同一个TCP连接中发送/接收多个请求/响应 * RTT RTT 实际应用—关于持久连接 万维网服务器 万维网客户 发起 TCP 连接 HTTP 请求报文 传输文档的时间 整个文档收到 时间 时间 HTTP 响应报文 请求一个万维网文档所需的时间 * 实际应用—关于持久连接(2) 假定有N个请求,服务器端顺序响应每个请求,设每个响应的文件的传输时间为T1,T2,…,TN, 不持久连接下总的时间 2RTT*N+ 在持久连接下总的时间 RTT*(N+1)+ * HTTP1.0和HTTP1.1的持久连
文档评论(0)