HTTP权威指南
- 通用缓存头部:
- Cache-Control:
- Pragma
- 条件请求头部:
Expect- If-Match([ETag实体标记]相关)
- If-Modified-Since(服务器返回304时的特殊处理)
- If-None-Match([ETag实体标记]相关)
If-Range(这个是不是相当于对文档资源的分布式环境下的共享读写访问?)- If-Unmodified-Since(???)
- Range(用于下载软件的断点续传)
- HTTP Disk Cache应如何处理Cookie?
- HTTP Disk Cache应如何处理Proxy?
- 实体缓存头部:
- ETag
- Expires
- Last-Modified
- Meter头部?
- Connection: meter, close, bill-by-credit-card
- Meter: max-uses=3, max-refuses=6, dont-report
- p101 代理不应转发Connection: Keep-Alive首部(HTTP/1.0+)
- Proxy-Connection:对于不识别的盲代理,服务器会忽略之;否则代理应将其转换为Connection首部。
- 但如果盲代理的任意一侧存在一个聪明代理的话,问题再次出现(实际上,试图在多跳之间建立一个长连接总是会遇到类似问题的)
- HTTP/1.1的持久连接(默认),必须显示添加一个Connection: close。
- p140 反向代理:假装自己就是Web服务器(名字太费解了!)
- p142 匿名代理:删除IP信息、From、Referer、Cookie、Session、UA中的主机信息
- p150 PAC,WPAD(依赖于DNS)
- p152 代理URI(完整地址),或+ Host头部
- p156 有显示代理时,不对用户输入做扩展,如:http://abc/
- p158 Via
- p162 TRACE
- p174 缓存:命中、未命中、再验证
- 字节命中率(-_-)
- 再验证:若返回404则删除本地cache(!?)
- 区分响应是否来自Cache:Date头部、Age头部(只有原始服务器有权设置)
- p178 公共缓存(proxy cache)~ squid配置节省对图片资源的重复网络请求
p180 动态缓存,cache mesh,内容路由 ICP/HTCP- p181 缓存处理
- 接受客户端请求
- 解析
- 查询:是否有本地cache,否,就先获取一份副本(?对于浏览器本地disk cache不需要这么做)
- 可能更新Header:新的过期日
- 若验证不可,返回错误,
- 若不得已使用了旧cache,设置Warning(?)
- 新鲜度检测
- 创建响应(+Via?)(-Date!)
- Log(更新Cache命中统计信息)
- p185 ‘过期日’:HTTP/1.0+ Expires;及/1.1 max-age(单位:秒)——优先使用Cache-control
- p187 条件方法
- If-Match:用于并发控制(乐观锁?read->write)
- If-Unmodified-Since:用于部分传输
- If-Modified-Since(IMS):
- If-None-Match:"<etag>"
- 注意:可以包含多个etags(但浏览器没必要支持),主要用于SCM over HTTP?
p190 ‘弱验证’- p191 控制缓存
- no-store:对于敏感信息,不要缓存!
- no-cache:可以缓存,但必须验证
- must-revalidate:可以提供新鲜副本,但不可使用旧的
- 再验证的情形:如果发生网络错误,返回504
- max-age
- 不推荐用Expires(时钟不同步)
- p193 没有过期信息下的自主决定:‘试探性过期’
- LM-factor
- p194 Reload/Refresh:刷新Cache!(F5~Shift+F5)
- 特殊的Cache-Control:
- max-stale:允许“稍微过期”
- min-fresh
- max-age
- no-cache
- no-store
- no-transform*
- only-if-cached(?)
- 特殊的Cache-Control:
- p195 Apache控制
- mod_headers:Header set Cache-control ...
- mod_expires:ExpiresDefault A3600/M86400/"access plus 1 week"
- ExpiresByType text/html ...
- mod_cern_meta*
- p196 HTTP-EQUIV(不要用)
- p204 Cache与广告 -_-
- 日志迁移
- RFC 2227 Meter(代理==>Web服务器)
- p217 CONNECT
- p222 盲中继(relay):直接转发
p226 Web爬虫、robots.txt- BFS,
DFS
- BFS,
HTTP-NG- p290 no-cache="Set-Cookie",摘要认证(略)
- p324- HTTPS
- OpenSSL客户端:% https_client <url>
- p358 实体、编码和国际化
- p374 分块(chunked),Trailer: Content-MD5(现在应该用SHA1了吧?)
- p382 A-IM及226响应
- p389 阿拉伯语只有28个字符???
- p414 内容协商(略)
- p432 虚拟主机(就是7一个Host头部的处理)
- p449 WebDAV(这里的协议命令让我想起了Redis)
- p469 重定向与负载均衡(LB)
- p506 日志与使用情况跟踪
- 附录A URI×
- 附录B 状态码(略)
- 附录C 头部(略)
- Warning: 101 111 112 113 199 214 209
- 附录D MIME类型