HTTP/1.1 容许一台 HTTP 服务器搭建多个 web 站点, 例如提供 web 托管服务的供应商, 能够用一台服务器为多位客户服务, 也能够以每位客户持有的域名运行各自不一样的网站. 这是利用了虚拟主机的功能.web
即便物理层面只有一台服务器, 但只要使用虚拟主机的功能, 则能够假想已具有多台服务器.缓存
客户端使用 HTTP 协议访问服务器时, 会常常采用相似 www.hackr.jp 这样的主机名和域名.安全
在互联网上, 域名经过 DNS 服务映射到 IP地址(地址解析)以后访问目标网站, 可见, 当请求发送到服务器时, 已是以 IP 地址形式访问了. 因此, 当一台服务器内托管了 www.tricoder.jp 和 www.hackr.jp 两个域名, 当收到请求时就须要弄清楚究竟要访问哪一个域名.服务器
HTTP通讯时, 除客户端和服务器之外, 还有一些用户通讯数据转发的应用程序, 例如 代理, 网关和隧道.网络
这些应用程序和服务器能够将请求转发给通讯线路上的下一站服务器, 而且可以接收从那台服务器发送的响应再转发给客户端.网站
代理: 是一种有转发功能的应用程序, 它扮演了位于服务器和客户端之间的中间人的角色.加密
使用代理服务器的理由: 利用缓存技术减小网络带宽的流量, 组织内部针对特定网站的访问控制, 获取访问日志 等.代理
代理基本上分为两类: 缓存代理, 透明/非透明 代理日志
缓存代理: 代理转发响应时, 会预先将资源的副本(缓存) 保存在代理服务器上. 当代理再次接收到对相同资源的请求时, 就能够不从源服务器那里获取资源, 而是将以前缓存的资源做为响应返回.code
透明代理: 转发请求或响应时, 不对报文作任何加工的代理类型被称为透明代理, 反之, 被称为 非透明代理
网关:是转发其余服务器通讯数据的服务器, 接收从客户端发送过来的请求时, 它就像本身拥有资源服务器同样对请求进行处理, 有时客户端可能都不会察觉, 本身的通讯目标是一个网关.
网关的工做和代理十分相似, 而网关能使通讯线路上的服务器提供非 HTTP 协议服务.
隧道: 中转.加密, 隧道的目的是确保客户端和服务器进行安全的通讯.
隧道自己不去解析 HTTP 请求, 隧道会在通讯双方断开链接时结束.
缓存是指代理服务器和客户端本地磁盘内保存的资源副本, 利用缓存可减小对源服务器的访问, 缓存服务器是代理服务器的一种, 并归类在缓存代理类型中.
缓存有效期, 即便存在缓存, 也会由于客户端的要求, 缓存的有效期等因素, 向源服务器确认资源的有效性. 若判断缓存失效, 缓存服务器将会再次从源服务器上获取"新"资源.
注意 这里的缓存, 不是 Cookie, 不是一回事.