3月阅读周·HTTP权威指南:集成点之网关篇
引言
HTTP(Hypertext Transfer Protocol,超文本传输协议[插图])是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。
《HTTP权威指南》一书将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。此外,这本书还介绍了很多HTTP应用程序正常工作所必需且重要的非HTTP技术。
这本书主要包括以下内容:
- 第一部分描述了Web的基础构件与HTTP的核心技术
- 第二部分重点介绍了Web系统的结构构造块:HTTP服务器、代理、缓存、网关以及机器人应用程序。
- 第三部分提供了一套用于追踪身份、增强安全性以及控制内容访问的技术和技巧。
- 第四部分涵盖HTTP报文主体和Web标准,前者包含实际内容,后者描述并处理主体内容。
- 第五部分介绍了发布和传播Web内容的技巧。
- 第六部分是一些很有用的参考附录,以及相关技术的教程。
集成点:网关、隧道及中继
事实证明,Web是一种强大的内容发布工具。随着时间的流逝,人们已经从只在网上发送静态的在线文档,发展到共享更复杂的资源,比如数据库内容或动态生成的HTML页面。Web浏览器这样的HTTP应用程序为用户提供了一种统一的方式来访问因特网上的内容。
HTTP也已成为应用程序开发者的一种基本构造模块,开发者们可以在HTTP上捎回其他的协议内容(比如,可以将其他协议的流量包裹在HTTP中,用HTTP通过隧道或中继方式将这些流量传过公司的防火墙)。Web上所有的资源都可以使用HTTP协议,而且其他应用程序和应用程序协议也可以利用HTTP来完成它们的任务。
网关
HTTP扩展和接口的发展是由用户需求驱动的。要在Web上发布更复杂资源的需求出现时,人们很快就明确了一点:单个应用程序无法处理所有这些能想到的资源。
为了解决这个问题,开发者提出了网关(gateway)的概念。
,Joe的五金商店服务器就是作为连接数据库内容的网关使用的——注意,客户端只是在通过HTTP请求资源,而Joe的五金商店的服务器在与网关进行交互以获取资源。
有些网关会自动将HTTP流量转换为其他协议,这样HTTP客户端无需了解其他协议,就可以与其他应用程序进行交互了。
三个网关的示例。
- 网关收到了对FTP URL的HTTP请求。然后网关打开FTP连接,并向FTP服务器发布适当的命令。然后将文档和正确的HTTP首部通过HTTP回送。
- 网关通过SSL收到了一条加密的Web请求,网关会对请求进行解密,[插图]然后向目标服务器转发一条普通的HTTP请求。可以将这些安全加速器直接放在(通常处于同一场所的)Web服务器前面,以便为原始服务器提供高性能的加密机制。
- 网关通过应用程序服务器网关API,将HTTP客户端连接到服务器端的应用程序上去。在网上的电子商店购物、查看天气预报,或者获取股票报价时,访问的就是应用程序服务器网关。
客户端和服务器端网关
Web网关在一侧使用HTTP协议,在另一侧使用另一种协议。
可以用一个斜杠来分隔客户端和服务器端协议,并以此对网关进行描述:<客户端协议>/<服务器端协议>
因此,将HTTP客户端连接到NNTP新闻服务器的网关就是一个HTTP/NNTP网关。我们用术语服务器端网关和客户端网关来说明对话是在网关的哪一侧进行的。
- 服务器端网关(server-side gateway)通过HTTP与客户端对话,通过其他协议与服务器通信(HTTP/*)。
- 客户端网关(client-side gateway)通过其他协议与客户端对话,通过HTTP与服务器通信(*/HTTP)。
总结
网关可以作为某种翻译器使用,它抽象出了一种能够到达资源的方法。网关是资源和应用程序之间的粘合剂。应用程序可以(通过HTTP或其他已定义的接口)请求网关来处理某条请求,网关可以提供一条响应。网关可以向数据库发送查询语句,或者生成动态的内容,就像一个门一样:进去一条请求,出来一个响应。
作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。
- 点赞
- 收藏
- 关注作者
评论(0)