学习笔记 HTTP权威指南 第8章 网关隧道和中继

262 阅读4分钟

前面介绍了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

TODO

8.1.2 为什么要把服务器扩展API和CGI放在一起讲?

8.3 我要求你盲转发你就非得盲转发么?这有点不科学呀