《HTTP权威指南》学习笔记(二)
第二部分 HTTP的结构(Web系统的结构构造块:HTTP服务器、代理、缓存、网关及机器人应用程序)
第5章 WEB服务器
内容:
Web服务器工作的过程:
第一步:接受客户端连接==>接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭。
第二步:接收请求报文==>从网络中读取一条HTTP请求报文。
第三步:处理请求==>对请求报文进行解释,并采取行动。
第四步:对资源的映射及访问==>访问报文中指定的资源。
第五步:构建响应==>创建带有正确首部的HTTP响应报文
第六步:发送响应==>将响应回送给客户端。
第七步:记录日志==>将与已完成事务有关的内容记录在一个日志文件中。
第6章 代理
内容:
对HTTP代理进行解释,将其与Web网关进行对比,并说明如何部署代理;
说明在现实网络中是怎样部署代理以及如何将网络流量导向代理服务器;
说明如何配置浏览器来使用代理;
展示HTTP的代理请求,说明它们与服务器请求的区别,以及代理如何改变浏览器行为;
描述基于代理的HTTP访问控制方法;
解释代理如何与客户端和服务器进行交互,每个客户端和服务器支持的特性和使用的版本都可能有所不同。
应用程序接口
隧道
中继
第二部分 HTTP的结构(Web系统的结构构造块:HTTP服务器、代理、缓存、网关及机器人应用程序)
第5章 WEB服务器
内容:
Web服务器工作的过程:
第一步:接受客户端连接==>接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭。
第二步:接收请求报文==>从网络中读取一条HTTP请求报文。
第三步:处理请求==>对请求报文进行解释,并采取行动。
第四步:对资源的映射及访问==>访问报文中指定的资源。
第五步:构建响应==>创建带有正确首部的HTTP响应报文
第六步:发送响应==>将响应回送给客户端。
第七步:记录日志==>将与已完成事务有关的内容记录在一个日志文件中。
图1 Web服务器响应请求的步骤
第6章 代理
内容:
对HTTP代理进行解释,将其与Web网关进行对比,并说明如何部署代理;
说明在现实网络中是怎样部署代理以及如何将网络流量导向代理服务器;
说明如何配置浏览器来使用代理;
展示HTTP的代理请求,说明它们与服务器请求的区别,以及代理如何改变浏览器行为;
描述基于代理的HTTP访问控制方法;
解释代理如何与客户端和服务器进行交互,每个客户端和服务器支持的特性和使用的版本都可能有所不同。
第7章 缓存
内容:
Web缓存是可以自动保存常见文档副本的HTTP设备。当Web请求抵达缓存时,若本地有“已缓存的”副本,就可以从本地存储设备而不是
内容:
Web缓存是可以自动保存常见文档副本的HTTP设备。当Web请求抵达缓存时,若本地有“已缓存的”副本,就可以从本地存储设备而不是
原始服务器中提取这个文档。
缓存的优点:
缓存减少冗余的数据传输;
缓存缓解了网络瓶颈的问题;
缓存降低了对原始服务器的要求;
缓存降低了距离时延。
对一条HTTP GET报文的基本缓存处理过程包括七个步骤:
1)接收--缓存从网络中读取抵达的请求报文;
2)解析--缓存对报文进行解析,提取出URL和各种首部;
3)查询--缓存查看是否有本地副本可用,若无,就获取一份副本并将其保存在本地;
4)新鲜度检测--缓存查看已缓存副本是否足够新鲜,若否,则询问服务器是否有任何更新;
5)创建响应--缓存会用新的首部和已缓存的主体来构建一条响应报文;
6)发送--缓存通过网络将响应发回给客户端;
7)日志--缓存可选地创建一个日志文件条目来描述该事务;
文档过期
过期日期和使用期
服务器再验证
注:重点是缓存投毒。
缓存的优点:
缓存减少冗余的数据传输;
缓存缓解了网络瓶颈的问题;
缓存降低了对原始服务器的要求;
缓存降低了距离时延。
对一条HTTP GET报文的基本缓存处理过程包括七个步骤:
1)接收--缓存从网络中读取抵达的请求报文;
2)解析--缓存对报文进行解析,提取出URL和各种首部;
3)查询--缓存查看是否有本地副本可用,若无,就获取一份副本并将其保存在本地;
4)新鲜度检测--缓存查看已缓存副本是否足够新鲜,若否,则询问服务器是否有任何更新;
5)创建响应--缓存会用新的首部和已缓存的主体来构建一条响应报文;
6)发送--缓存通过网络将响应发回给客户端;
7)日志--缓存可选地创建一个日志文件条目来描述该事务;
文档过期
过期日期和使用期
服务器再验证
注:重点是缓存投毒。
第8章 集成点:网关、隧道及中继
内容:
网关:在HTTP和其他协议及应用程序间起到接口作用;
应用程序接口:允许不同类型的Web应用程序互相通信;
隧道:允许用户在HTTP连接上发送非HTTP流量;
中继作为一种简化的HTTP代理,一次将数据转发一跳;
网关:协议网关、资源网关
内容:
网关:在HTTP和其他协议及应用程序间起到接口作用;
应用程序接口:允许不同类型的Web应用程序互相通信;
隧道:允许用户在HTTP连接上发送非HTTP流量;
中继作为一种简化的HTTP代理,一次将数据转发一跳;
网关:协议网关、资源网关
图2 网关的例子
应用程序接口
在两个应用程序之间进行协议接口的协商,以便这些应用程序可以进行数据交换。
WEB服务可以用XML通过SOAP来交换信息。XML提供了一种创建数据对象的定制信息,并对其进行解释的方法。SOAP是向HTTP报文中添加
WEB服务可以用XML通过SOAP来交换信息。XML提供了一种创建数据对象的定制信息,并对其进行解释的方法。SOAP是向HTTP报文中添加
XML信息的标准方式。
隧道
Web隧道-->HTTP的另一种用法。WEB隧道允许用户通过HTTP连接发送非HTTP流量,这样就可以在HTTP上稍带其他协议数据。
使用隧道最常见的原因就是要在HTTP连接中嵌入非HTTP流量,这类流量可以穿过只允许WEB流量通过的防火墙。
使用隧道最常见的原因就是要在HTTP连接中嵌入非HTTP流量,这类流量可以穿过只允许WEB流量通过的防火墙。
图3 用Connect建立HTTP隧道
图4 SSL流量经由HTTP隧道穿过防火墙
中继
中继是没有完全遵循HTTP规范的简单HTTP代理。中继负责处理HTTP中建立连接的部分,然后对字节进行盲转发。
第9章 Web机器人
内容:
内容:
WEB爬虫是一种机器人,他们会递归地对各种信息性WEB站点进行遍历,获取第一个WEB页面,然后获取那个页面指向的所有WEB页面,
然后是那些页面指向的所有WEB页面,以此类推。递归地追踪这些WEB链接的机器人会沿着HTML超链创建的网络“爬行”,所以将其称为爬虫或蜘蛛。
爬虫原理
第10章 HTTP-NG
内容:
内容:
HTTP-NG可能解决的问题:复杂性、可扩展性、性能、传输依赖性(HTTP存在的问题)。
HTTP-NG分层结构:
第一层:报文传输层: 关心的是报文的有效传输,不考虑报文的含义和目的。
第二层:远程调用层: 提供了通用的请求/响应框架,客户端可通过此框架调用对服务器资源的操作。
第三层:Web应用层: WEB应用层负责 执行语义和应用程序特定逻辑。
扩展阅读及思考
注:
第一层:报文传输层: 关心的是报文的有效传输,不考虑报文的含义和目的。
第二层:远程调用层: 提供了通用的请求/响应框架,客户端可通过此框架调用对服务器资源的操作。
第三层:Web应用层: WEB应用层负责 执行语义和应用程序特定逻辑。
图5 HTTP-NG分层
扩展阅读及思考
注: