与HTTP协作的Web服务器
- HTTP /1.1允许一台HTTP服务器搭建多个Web站点。
- HTTP通信时,除客户端和服务器以外,还有一些用于通信数据转发的应用程序,例然代理、网关、隧道。
- 这些应用程序和服务器可以将请求转发给通信线路上的下一站服务器,并且能接收那台服务器发送的响应再转发给客户端。
代理
- 是一种转发功能的应用程序,扮演了位于服务器和客户端中间人角色,接收客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端。
- 代理不改变请求URI,会直接发送给前方持有资源的目标服务器。转发时,需要附加Via首部字段以标记出经过的主机信息。
- 使用代理服务器理由有:
利用缓存技术减少网络带宽流量。
组织内部针对特定网站的访问控制。
以获取访问日志为目的。 - 缓存代理会预先将资源的副本保存在代理服务器上。当代理再次收到同样请求,可以不从源服务器那里获取资源,而是将之前缓存的资源作为响应返回。
- 透明代理转发请求或响应时,不对报文做任何加工的代理类型被称为透明代理。反之,对报文内容进行加工的代理被称为非透明代理。
网关
- 是转发前台服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理。
- 网关工作机制和代理相似。网关能使通信线路上的服务器提供非HTTP协议服务。
- 利用网关能提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接安全。
隧道
- 是在相隔甚远的客户端服务器之间进行中转,并保持双方通信连接的应用程序。
- 隧道可按要求建立一条与其他服务器的通信线路,届时使用SSL等加密手段进行通信。
- 隧道本身不会去解析HTTP请求。也就是说,请求保持原样中转给之后的服务器。隧道会在通信双方断开连接时结束。
缓存
- 指代理服务器或客户端本地磁盘内保存的资源副本,利用缓存可以减少对源服务器的访问。
- 缓存服务时代理服务器的一种。当代理转发从服务器返回的响应时,代理服务器将会保存一份资源的副本。
- 缓存不仅可以存于缓存服务器内,还可以存在客户端浏览器中,浏览器缓存如果有效,就不必再向服务器请求相同资源了,可以直接从本地磁盘内读取。和缓存服务器相同一点是,当判定缓存过期后,会向源服务器确认资源的有效性。若判断浏览器缓存失效,浏览器会再次请求新资源。
HTTP之前出现的协议
- FTP 传输文件时使用的协议,1973年前后,比TCP/IP协议簇的出现还要早。
- NNTP 用于NetNews 电子会议室内传送消息的协议。在1986年出现,不怎么使用了。
- Archie 搜索FTP公开文件的协议,1990年出现,不怎么使用。
- WAIS 以关键词检索多个数据库使用的协议,1991年前后出现。不怎么使用。
- Gopher 查找与互联网连接的计算机内信息的协议,1991年前后出现,不怎么使用。
总结
- 主要是通信转发的几个程序。网关有点跟我想的有点不一样。