前面介绍了web结构中的服务器和代理,还有其他一些组成部分集中在这一章介绍.
8.1 网关
-
什么是网关
- 网关是资源和应用程序之间的粘合剂
- 请求网关,网关对接所有服务器程序,然后返回响应
-
为什么会出现网关
- 最开始只请求静态资源
- 后来又出现动态资源,视频,购物,财经数据等各种各校的需求
- 所以必须要由很多个程序来提供服务
- 而通过网关,客户端只对接网关,由网关去对接所有的程序即可
-
网关的几种应用
- 客户端发起FTP URL的HTTP请求,网关转换成FTP请求,返回HTTP响应,避免客户端直接发起FTP请求
- 客户端发起SSL请求,网关转换成HTTP请求,减轻服务器解码压力
- 客户端发起请求,通过网关API转接到对应的服务器程序上
-
什么是客户端网关
- 通过其他协议与客户端对话,通过HTTP协议与服务器对话
-
什么是服务器网关
- 通过HTTP协议与客户端对话,通过其他协议与服务器对话
8.1.1 协议网关
-
如何把流量导入网关
- 显示在浏览器中设置
- 添加反向代理
-
协议网关的几种形式
- HTTP -> FTP
- HTTP -> HTTPS
- 流量出口处添加网关,统一加密数据传输,提升安全性
- HTTPS -> HTTP
- 服务器入口处添加网关,统一解密,减轻服务器压力
8.1.2 资源网关
-
什么是资源网关
- 资源网关实际就是一个应用程序
- 也是部署在原始服务器上的
- 通过API把请求转发到其他应用程序上
-
什么是CGI
- Common Gateway Interface
- 通用网关接口
- 就是一个应用程序,就是资源网关
- 用于接收请求,转发到其他程序,然后返回响应
-
CGI的不足
- 每条CGI请求都会引发一个新进程
- 增加服务器开销
-
什么服务器扩展API
- 开发人员可以直接修改服务器某项功能
-
为什么需要服务器扩展
- 服务器无法满足业务需要
- 提升服务器性能
这一坨始终还是没有理清楚,只是知道了很多概念,但形象的动作流程在脑子里没有印象
8.2 Web服务
-
什么是Web服务
- 允许不同Web应用程序之间相互通信的标准和协议
- 是应用程序共享信息的新机制
-
为什么需要Web服务
- HTTP只是连接程序的基础软件
- 但是不同的软件之间没办法完全通过HTTP进行通信
8.3 隧道
-
隧道是干什么的
-
通过HTTP应用,访问非HTTP协议的应用程序
-
允许HTTP连接发送非HTTP流量
-
如何建立隧道
- 客户端发起一条CONNECT请求
- 隧道网关收到请求和会和服务器建立特殊端口的连接
- 然后200 Connection通知客户端
- 网关对数据进行盲转发
-
CONNECT请求和其他请求的区别
- 请求首先必须带上主机和端口号
- 响应是200加Connection Established
-
SSL隧道和HTTP/HTTPS网关的对比
- 这一坨也没有搞透彻
-
什么是SSL隧道
- 在HTTP中添加一隧道特性
- 然后把SSL后的数据放入报文中
- 通过HTTP协议盲转发这些数据
- 服务器收到后再解封为SSL流量
-
隧道存在的问题
- 隧道网关无法检测隧道内流量的协议
- SSL后的流量可能是游戏或者telnet等恶意流量
-
如果解决隧道的安全问题
- 只为特定端口打开隧道,比如443
8.5 中继
-
什么是中继
- 没有完全遵循HTTP规范的代理
- 只管建立连接负责盲转发
- 不对报文进行任何验证和处理
-
盲中继存在的问题
- 这个和哑代理是一个意思,在持久连接中的影响比较大
- 可以参考4.5.3