与HTTP协作的Web服务器
用单台虚拟主机实现多个域名
HTTP/1.1允许一台HTTP服务搭建多个Web站点。比如提供Web托管(Web Hosting Service)的供应商、可以用一台服务器为多位客户服务。也可以为每位客户持有的域名运行各自不同的网站。
即使物理层面只有一台服务器,只要有虚拟主机的功能,则可以假象已具有多台服务器。
一台服务器托管了不同的域名,使用DNS服务解析域名后,两者的访问IP地址会相同。
因此在发送HTTP请求时,必须在Host首部内完整指定主机名或域名的URI.
通信数据转发程序:代理、网关、隧道
HTTP通信时,除客户端和服务器端,还有一些用于通信数据转发的应用程序,如代理、网关、隧道,可配合服务器工作。
这些应用程序和服务器可将请求转发给通信线路上的下一站服务器,并且能接受从那台服务器发送的响应再转发给客户端。
代理
扮演位于服务器和客户端“中间人”的角色,接受由客户端发送的请求并转发给服务器,同时也接受服务器返回的响应并转发给客户端。
代理服务器的基本行为就是上述。代理不改变请求URI,直接发送给前方持有资源的目标服务器。反之亦同。
通信过程中,可级联多台代理服务器。请求和响应转会经过数台似锁链一样连接起来的代理服务器。转发时,需要附加Via首部字段仪表及出经过的主机信息。
使用代理服务器的原因:利用缓存技术减少网络带宽的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要目的。。。。
代理使用方法有两种基类:1.是否使用缓存 2.是否修改报文
缓存代理
代理转发响应时,缓存代理(Caching Proxy)会预先将资源的副本(缓存)保存在代理服务器上。
当代理再次接受到对相同资源的请求时,就可以不从源服务器那里获取资源,直接将缓存的资源作为响应返回。
透明代理
转发请求或响应时,透明代理(Transparent Proxy)不对报文做任何加工。反之,对报文内容加工的则是非透明代理。
网关
网关是转发其他服务器通信数据的服务器,接受从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求处理。
利用网关可以提高通信的安全性,因为可在客户端与网关之间的通信线路上加密以确保连接的安全。如网关连接数据库,使用SQL语句查询。
隧道
隧道是在相隔甚远的客户端和服务器之间进行中转,并保存双方通信连接的应用程序。
隧道按要求建立一条与其他服务器的通信路线,使用了SSL(Secure Sockets Layer)等加密手段进行通信。目的是确保客户端能与服务器进行安全的通信。
隧道本身不会解析HTTP。并在通信双方断开连接时结束。
保存资源的缓存
缓存是指代理服务器或客户端本地磁盘内保存的资源副本。利用缓存可减少对源服务器的访问,因此也就节省了通信流量和通信时间。
缓存服务器是代理服务器的一种。
缓存服务器的优势在于利用缓存避免多次从源服务器转发资源。
缓存的有效期限
缓存服务器上有缓存,由于具有时效性,不保证每次都会返回对同资源的请求。
源服务器上资源更新,换粗就会演变为“旧”资源。
客户端的要求、缓存的有效期也会影响资源的有效性。若判断资源失效,则从源服务器获取“新”资源。
客户端的缓存
客户端缓存称为临时网络文件(Temporary Internet File)
浏览器缓存如果有效,就可以从本地磁盘读取。
和缓存服务器相同,判断缓存失效后会再次请求新资源。
在HTTP之前出现的协议
FTP(File Transport Protocol)
传输文件使用的协议。被HTTP的流量(Traffic)超越,但现在仍在使用。
NNTP(Network News Transfer Protocol)
用于NetNews电子会议室内传送消息的协议。利用Web交换信息后,不怎么使用。
Archie
搜索anonymous FTP公开的文件信息的协议,不怎么使用。
WAIS(Wide Area Information Servers)
以关键词检索多个数据库使用的协议。被HTTP协议取代,不怎么使用。
Gopher
查找与互联网连接的计算机信息协议。被HTTP协议取代,不怎么使用。