第五章 Web服务器
第一步 接受客户端链接
第二步 接收请求报文
第三步 处理请求
第四步 对资源的映射及访问
第五步 构建响应
重定向:永久搬离的资源 301 临时搬离的资源 URL增强 负载均衡 服务器关联 规范目录名称复制代码
第六步 发送响应
第七步 记录日志
第六章 代理
代理和网关的区别
代理:两个或多个相同协议的应用程序网关:两个或多个不同协议的端点,扮演协议转换的角色复制代码
代理方式
* 出口代理* 访问(入口)代理* 反向代理* 网络交换代理复制代码
动态代理的例子
* 负载均衡* 地理位置附近的代理* 协议/类型路由* 基于订购的路由复制代码
使流量流向代理的方式
* 修改客户端 1)手工配置 2)预先配置浏览器 3)代理自动配置(Proxy Auto-Configuration,PAC) PAC文件是小型Javascript程序 4)WPAD的代理发现(Web Proxy Autodiscovery Protocol,WPAD)* 修改网络* 修改DNS的命名空间* 修改WEB服务器复制代码
via首部
* ,分隔路标* 如果响应报文是通过代理转发,一定要保证代理没有修改Server首部,Server首部适用于院士服务的,代理应该添加Via条目复制代码
Max-Forwards
每跳一次减1复制代码
第七章 缓存
Web缓存是可以自动保存上见文档副本的HTTP设备 优点: * 缓存减少了冗余数据传输 * 缓解了网络环境问题 * 降低了对原始服务器的要求 * 降低了距离延时
冗余数据传输
命中和未命中
* 缓存命中(cache hit)* 缓存未命中 (cache miss)* HTTP再验证 缓存可以任意时刻,任意频率对副本进行再验证*再验证命中revalidate hit(缓慢命中slow hit)复制代码
HTTP再验证工具
* If-Modified-Since首部 再验证命中:发送小的HTTP 304 Not Modified 再验证未命中:发送带有完整内容的HTTP 200 OK响应 对象被删除:服务器返回404 Not Found响应,缓存也从副本中删除* 缓存命中率(cache hit rate)有时也称文档命中率(document hit rate)* 字节命中率(byte hit rate)* 客户端通过Date,Age首部判断响应是否来自缓存复制代码
缓存的处理步骤
(1)接收(2)解析(3)查询(4)新鲜度检测(5)创建响应(6)发送(7)日志复制代码
文档过期
通过特殊HTTP Cache-Control首部和Expires首部说明在多长时间内可以将这些内容视为新鲜* HTTP/1.0+ Expires: Fri, 05 Jul 2002, 05:00:00 GMT* HTTP/1.1 Cache-Control: max-age=4842000复制代码
用条件的方法进行再验证
* If-modified-Since:与Last-Modified服务器响应首部配合视同* If-None-Match: 实体标签再验证 实体标签ETag版本识别符复制代码
控制缓存的能力
* no-Store和no-cache首部可以防止缓存提供未经证实的已缓存对象 Pragma: no-cache HTTP/1.1中提供,为了兼容HTTP/1.0+ Cache-Control: no-store Cache-Control: no-cache* max-age响应首部,从服务器将文档传来之时起,可以认为此文档新鲜的秒数 Cache-Control: max-age=3600 Cache-Control: s-maxage=3600 仅适用于共享(共有)缓存 设置为0表示每次访问都刷新* Expires响应首部 HTTP/1.0 不推荐使用,指定的是实际的过期日期而不是秒数,因为服务器时钟并不同步 Expires: Fri, 05 Jul 202, 05:00:00 GMT* must-revalidate响应首部 告诉缓存,事先没有跟原始服务器再验证不能提供。如果验证时,原始服务器不可用,缓存返回504 Gateway Timeout Cache-Control: must-revalidate* 试探性过期 如果没有Cache-Control: max-age首部,也没有Expires,最大使用期大于24小时,应该向响应首部添加Heuristic Expiration Warning首部复制代码
第八章 网关、隧道及中继
网关
隧道
Web隧道是用HTTP的CONNECT方法建立起来的。是HTTP/1.1得到广泛应用的扩展。1)CONNECT请求 CONNECT home.netscape.com:443 HTTP/1.0 User-agent: Mozilla/4.02)CONNECT响应 HTTP/1.0 200 Connection Established Proxy-agent: Netscape-Proxy/1.1复制代码
第九章 机器人
根集
管理访问过地址的技术
* 树和散列表* 有损的存在位图* 检查点* 分类 《海量数据管理-文档和图像的压缩与索引》复制代码
避免循环和重复
* 规范化URL* 广度优先的爬行* 节流* 限制URL的大小* URL/站点黑名单* 模式检测* 内容指纹* 人工监视复制代码
机器人的HTTP
识别请求首部
* User-Agent* From* Accept* Referer复制代码
对响应的处理
1.状态码 至少知道200 4042.实体 http-equiv: 服务器将把名称/值对添加到发送给浏览器的内容首部复制代码
拒绝机器人访问
robots.txt1. User-Agent行2. Disallow和Allow3. Disallow/Allow前缀匹配复制代码
HTML的robot-control元素标签
大小写无关,必须在head中* NOTINDEX* NOFOLLOW* INDEX* FOLLOW* NOARCHIVE* ALL* NONE复制代码
第十章 HTTP-NG
模块化及其增强
*第一层 报文传输层*第二层 远程调用层*第三层 Web应用层复制代码