《HTTP权威指南》第二部分 HTTP结构 笔记草稿

333 阅读4分钟

第五章 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:<date> 与Last-Modified服务器响应首部配合视同
* If-None-Match:<tag> 实体标签再验证
    实体标签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.0
2)CONNECT响应
    HTTP/1.0 200 Connection Established
    Proxy-agent: Netscape-Proxy/1.1

第九章 机器人

根集
管理访问过地址的技术
* 树和散列表
* 有损的存在位图
* 检查点
* 分类  《海量数据管理-文档和图像的压缩与索引》
避免循环和重复
* 规范化URL
* 广度优先的爬行
* 节流
* 限制URL的大小
* URL/站点黑名单
* 模式检测
* 内容指纹
* 人工监视
机器人的HTTP
识别请求首部
* User-Agent
* From
* Accept
* Referer
对响应的处理
1.状态码 至少知道200 404
2.实体 http-equiv: 服务器将把名称/值对添加到发送给浏览器的内容首部
拒绝机器人访问
robots.txt
1. User-Agent行
2. Disallow和Allow
3. Disallow/Allow前缀匹配
HTML的robot-control元素标签
<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">
大小写无关,必须在head中
* NOTINDEX
* NOFOLLOW
* INDEX
* FOLLOW
* NOARCHIVE
* ALL
* NONE

第十章 HTTP-NG

模块化及其增强
*第一层 报文传输层
*第二层 远程调用层
*第三层 Web应用层