**定个小目标,吃透这本书,每天最少一章 CSDN 见**
- 网关
单个应用程序无法处理所有这些能想到的资源。为了解决这个问题,开发者们提出了网关的概念。网关是资源和应用程序直接的粘合剂,应用程序可以请求网关来处理某条请求,网关可以提供一条响应,网关可以向数据库发送查询语句,或者生成动态的内容,就像一个们一样,进去一个请求,出来一个响应。
有些网关会自动将HTTP流量转换为其他协议,这样HTTP客户端无需链接其他协议,就可以与其他应用程序进行交互。![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/aedb94e73ca4e903466bc9eee52c0a3f.png)
- 网关协议
将HTTP流量导向网关是所使用的方式与将流量导向代理的方式相同,最长见的方式是,显示的配置浏览器使用网关,对流量进行透明的拦截,或者将网关配置为代替者。![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5c771073c0363d09802b114132716081.png)
请求流入原始服务器时,服务器端web网关会将客户端HTTP请求转为其他协议![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/971e1310f8dbf22745f3a2d177acddfe.png)
一个组织可以通过网关多所有输入WEB请求加密,以提供额外的隐私和安全性保护。客户端可以用普通的HTTP浏览web内容,但网关或自动加密用户的对话
现在将HTTPS/HTTP网关作为安全加速器使用的情况越来越多。这些HTTPS/HTTP网关位于web服务器之前,通常作为不可见的拦截网关或者反向代理。他们介绍安全的HTTPS流量,对安全流量进行解密,并想web服务器发送普通的HTTP请求
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/481f5d3df4ac1cfe9e3dd27543572c3a.png)
- 资源网关
最常见的网关应该是应用程序服务器,会将目标服务器与网关结合在一个服务器中实现。应用程序服务器是服务器端网关,也客户端通过HTTP进行通信,并与服务器端的应用程序相连。
CGI是第一个,可能仍然是等到最广泛使用的服务器扩展,在web上广泛用于动态HTML,信用卡处理,以及数据库查询等任务。CGI应用程序是独立于服务器的,所以几乎可以使用任意语言来实现。CHI协议为外部翻译器与现有的HTTP服务器提供了一种简介的接口方式,但如果响应改变服务器自身的行为,或者只是像尽可能的提升服务器上获得的性能?服务器开发者为这两种需求提供了几种服务器扩展API,为WEB开发者提供了强大的接口,以便他们将自己的模块与HTTP服务器直接相连。 - 隧道
web隧道允许用户通过HTTP链接发送非HTTP流量,这样就可以在HTTP捎带其他协议数据了,使用web隧道最常见的原因就是要在HTTP链接中嵌入非HTTP流量,这样这类流量就可以穿过只允许WEB流量通过的防火墙了。
web隧道是用HTTP的CONNECT方法建立起来的,CONNECT方法并不是HTTP/1.1核心规范的一部分,但却是一种的到广泛应用的扩展。
CONNECT方法请求隧道网关创建一条到达任意目的服务器和端口的TCP链接,并对客户端和服务器之间的后续数据进行盲转发。![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6a4686953a2672d97e38d69cc3611323.png)
隧道话数据多网关不是透明的,所以网关不能对分组的顺序和分组的留着做任何假设,一旦隧道建立起来了,数据就可以在任意时间流向任意方向了。作为一种性能优化方法,允许客户端在发送CONNECT请求之后,接受响应之前发送隧道数据,这样可以更快的将数据发送给服务器,但这意味着网关必须能后正确的处理跟在请求之后的数据。尤其是网关不能加上网络IO请求只返回首部数据,网关必须确保在链接准备就绪时,将首部一同读进来的数据发送给服务器。如果在任意时刻,隧道的任意一个端点断开了链接,那个端点发出的链接也会被代理终止。如果还有数据要传输给关闭的端点,数据会被丢弃。
最初开发WEB隧道是为了通过防火墙来传输加密SSL流量,汗多组织都会将所有流量通过分组过滤路由器和代理服务器已隧道方式传输,已提升安全性,但有些协议比如SSL,其信息是加密的,无法通过传统的代理服务器转发,隧道会通过一条HTTP链接来传输SSL流量,以穿过端口80的HTTP防火墙
可以像其他的协议一样,对HTTPS进行网关操作;有网关初始化与原创HTTPS服务器的SSL绘话,然后代表客户端执行HTTPS事务,响应由代理接受解密,然后通过HTTP传输给客户端,这是网关处理FTP的方式,但有一些缺点,客户端到网关之间的链接是普通非安全的HTTP;
尽管代理是已认证的主体,但客户端无法对远程服务器执行SSL客户端认证,网关要支持完整的SSL实现。
在适当的情况下,也可以将HTTP的其他特征与隧道配合使用,尤其是,可以将代理认证支持与隧道配合使用,对客户端使用隧道的权利进行认证。
总的来说隧道网关为无法验证目前使用的协议是否就是它原本打算经过隧道传输的协议。 - 中继
HTTP中继中没有完全遵循HTTP规范的简单HTTP代理,中继负责处理HTTP中建立链接的部分,然后对字节进行盲转发。
HTTP很负责,所以实现基本的代理功能并对流量进行盲转发,而且不执行任何首部的方法逻辑,有时是很有用的。![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ee2dc83a7f7a277b53d48c5dca57b25d.png)
本章节完,最近这两天经历了一些事情,可能是我人生的又一个转折点。突然发现“程序猿的工资是跳出来的”这句话还是有一定的道理的,当你觉得你面对的公司你感觉不适合你时,就像一些适合你的公司是什么样的,如果发现差别过大的话,不要试图去改变你现在的公司,因为你在他眼里不过是一个刚进公司的小伙。不是所有人都会听取别人意见的,尤其是在逆言的话中。
我还是那个佛学的“快乐小伙”;
塞翁失马,焉知非福。生活就是这样。