面试宝典%……%网络协议

菜鸟面试必知的 http 知识(六)—— web的结构组件

2017-07-29  本文已影响252人  彬彬酱

我们通常认为网络连接直接发生在客户端和服务器之间。但实际上网络请求从客户端发出后,会经过层层关卡到达服务器。服务器收到请求后,返回的响应依旧会经过层层关卡返回给客户端。本篇文章介绍了网络请求和响应会经过哪些关卡,以及这些关卡的作用分别是什么?

下面是本文的提纲:
  1. 代理
    位于客户端和服务器之间的 HTTP 中间实体

  2. 缓存
    HTTP 的仓库,使常用页面的副本可以保存在离客户端更近的地方

  3. 网关
    连接其他应用程序的特殊 Web 服务器

  4. 隧道
    对 HTTP 通信报文进行盲转发的特殊代理

  5. Agent 代理
    发起自动 HTTP 请求的半智能 Web 客户端


1 - 代理

代理位于客户端和服务器之间,接受所有客户端的HTTP请求,并将这些请求转发给服务器。对于用户来说,这些应用程序就是一个代理,代表用户访问服务器

web结构组件——代理
1.1 代理服务器的部署
出口代理和访问(入口)代理 反向代理和网络交换代理

2 - 缓存

Web缓存(Web cache)或代理缓存(proxy cache)是一种特殊HTTP代理服务器,可以将经过代理传送的常用文档复制保存下来。下一个请求同一文档的客户端就可以享受缓存的私有副本所提供的服务了。这样做的目的是因为客户端从附近的缓存下载文档会比从远程Web服务器下载快得多

web结构组件——缓存
2.1 缓存处理请求的过程

Web缓存的基本工作原理大多很简单,对一条HTTP GET报文的基本缓存处理过程包括以下7个步骤(如图所所示):

缓存命中
  1. 接收——缓存从网络中读取抵达的请求报文
  2. 解析——缓存对报文进行解析,提取出URL和各种首部
  3. 査询——缓存査看是否有本地副本可用,如果没有,就获取一份副本,并将其保存在本地
  4. 新鲜度检测——缓存査看已缓存副本是否足够新鲜,如果不是,就询问服务器是否有任何更新
  5. 创建响应——缓存会用新的首部和已缓存的主体来构建一条响应报文
  6. 发送——缓存通过网络将响应发回给客户端
  7. 日志——缓存可选地创建一个日志文件条目来描述这个事务

3 - 网关

网关(gateway)是一种特殊的服务器,作为其他服务器的中间实体使用。通常用于将HTTP流量转换为其他的协议。网关接受请求时就好像自己是资源端服务器一样。客户端可能并不知道自己正在与一个网关进行通信。
例如,一个HTTP/FTP网关会通过HTTP请求接受对FTP URI的请求,但通过FTP协议来获取文档。得到的文档会被封装成一条HTTP报文,发送给客户端。

web结构组件——网关

网关和代理的区别是,代理连接的是两个或多个使用相同协议的应用程序,而网关连接的则是两个或多个使用不同协议的端点。

3.1 网关的3个实例

下图显示了三个网关的示例:


三个网关的示例

4 - 隧道

隧道(tunnel)是建立起来之后,就会在两条连接之间对原始数据进行盲转发的 HTTP 应用程序。HTTP 隧道通常用来在一条或多条 HTTP 连接上转发非 HTTP 数据,转发时不会窥探数据。HTTP 隧道的一种常见用途是通过 HTTP 连接承载加密的安全套接字层(SSL, Secure Sockets Layer)流量,这样 SSL 流量就可以穿过只允许 Web 流量通过的防火墙了
如图所示,HTTP/SSL 隧道收到一条 HTTP 请求,要求建立一条到目的地址和端口的输出连接,然后在 HTTP 信道上通过隧道传输加密的 SSL 流量,这样就可以将其盲转发到目的服务器上去了。

web结构组件——隧道

5 - Agent代理

用户 Agent 代理(或者简称为 Agent 代理)是代表用户发起 HTTP 请求的客户端程序。所有发布 Web 请求的应用程序都是 HTTP Agent 代理。到目前为止,我们只提到过一种 HTTP Agent 代理:Web 浏览器,但用户 Agent 代理还有很多其他类型,比如网络爬虫。
爬虫属于Web机器人,而得到最广泛使用的Web机器人都是因特网搜索引擎。因特网搜索引擎可以帮助用户找到世界范围内涉及任意主题的文档。

web结构组件——Agent代理

大家好,我是彬彬酱,目前在腾讯从事Web后端开发。
菜鸟必知的 http 知识专题整理了关于网络的基础知识,适合大家进行入门级学习,这个专题现包含下列文章:
菜鸟必知的 http 知识(一)—— TCP 握手协议
菜鸟必知的 http 知识(二)—— HTTP 协议特点
菜鸟必知的 http 知识(三)—— 请求和响应报文
菜鸟必知的 http 知识(四)—— HTTP 和 HTTPS
菜鸟必知的 http 知识(五)—— 新技术的出现
菜鸟必知的 http 知识(六)—— web的结构组件


上一篇 下一篇

猜你喜欢

热点阅读