不同的 HTTP 协议变体

  • HTTP/0.9: 1991原型版本,初衷是获取简单的HTML对象,只支持GET方法,不支持多媒体内容的MIME类型、各种HTTP首部或者版本号。
  • HTTP/1.0: 添加了版本号、各种HTTP首部、一些额外的方法、对多媒体对象的处理。
  • HTTP/1.0+: 非正式的HTTP扩展版本,添加了持久的keep-alive连接、虚拟主机支持、以及代理连接支持。
  • HTTP/1.1: 当前使用的HTTP版本,校正结构性缺陷、明确语义、引入重要的性能优化措施,删除一些不好的特性。
  • HTTP-NG(HTTP/2.0): 重点关注性能和服务逻辑远程执行框架。

Web的结构组件

  • 代理 :位于客户端和服务器之间的 HTTP 中间实体
  • 缓存 :HTTP 的仓库,使常用页面的副本可以保存在离客户端更近的地方。
  • 网关 :连接其他应用程序的特殊 W eb 服务器。
  • 隧道: 对 HTTP 通信报文进行盲转发的特殊代理。
  • Agent 代理: 发起自动 HTTP 请求的半智能 Web 客户端。

代理(Web安全、应用集成以及性能优化的重要模块)

代理接受所有客户端的HTTP请求并将请求转发给服务器(请求可能被修改后再转发)。 代理可对请求和响应进行过滤,如在企业中对下载的应用程序进行病毒检测,或对小学生屏蔽一些网站。

代理

缓存

Web缓存(Web cache)或代理缓存(proxy cache)是一种特殊的HTTP代理服务 器,可以将经过代理传送的常用文档复制保存起来。客户端从附近的缓存下载文档会比从远程 Web 服务器下载快得多,因此提高性能。

网关

网关(gateway)是一种特殊的服务器,作为其他服务器的中间实体使用,通常用于 将 HTTP 流量转换成其他的协议,如FTP。

FTP

隧道

隧道(tunnel)是建立起来之后,就会在两条连接之间对原始数据进行盲转发的 HTTP 应用程序。 HTTP 隧道的一种常见用途是通过 HTTP 连接承载加密的安全套接字层(SSL, Secure Sockets Layer)流量,因此SSL流量可以穿过只允许Web流量通过的防火墙。隧道可以在非HTTP网络上转发数据,转发时不会窥探数据:

隧道

Agent代理

代表用户发起HTTP请求的客户端程序,如Web浏览器。 自动用户Agent代理,即在无人监视的情况下发布HTTP事务并获取内容,如网络蜘蛛spiders、Web机器人。 自动搜索引擎“网络蜘蛛”从世界范围内获取Web页面:

Agent代理