第8章 网关、隧道及中继

网关

1、网关可以作为某种翻译器使用,它抽象除了一种能够到达资源的方法。网关是资源和应用程序之间的粘合剂。应用程序可以(通过HTTP或其他已定义的结构)请求网关来处理某条请求,网关可以提供一条响应。网关可以向数据库发送查询语句,或者生成动态的内容,就像一个门一样:进去一条请求,出来一个响应。有些网关会自动地将HTTP流量转换为其他协议,这样HTTP客户端无需了解其他协议,就可以与其他应用程序进行交互了。

2、将HTTP流量导向网关时所使用的方式与将流量导向代理的方式相同。最常见的方式是显式地配置浏览器使用网关,对流量进行透明的拦截,或者将网关配置为反向代理。

3、HTTP/*:服务器端Web网关

请求流入原始服务器时,服务器端Web网关会将客户端HTTP请求转换为其他协议,传入服务器。完成获取之后,会将对象放在一条HTTP响应中回送给客户端。

4、HTTPS/HTTP:这些网关位于Web服务器之前,通常作为不可见的拦截网关或反向代理使用,它们接收安全的HTTPS流量,对安全流量进行解密,并向Web服务器发送普通的HTTP请求。

5、资源网关:客户端通过HTTP连接到应用程序服务器,但应用程序服务器并没有回送文件,而是将请求通过一个网关应用编程接口(API)发送给运行在服务器上的应用程序。

第一个流行的应用程序网关API就是通用网关接口(CGI)。CGI是一个标准接口集,Web服务器可以用它来装载程序以响应对特定URL的HTTP请求,并收集程序的输出数据,将其放在HTTP响应中回送。

请求需要使用网关的资源时,Web服务器会请应用程序来处理请求。服务器会将应用程序所需的数据数据传送给它。通常就是整条请求。然后应用程序会向服务器返回一条响应或响应数据,服务器则会将其转发给客户端。服务器和网关是相互独立的应用程序,因此它们的责任是分得很清楚的。这种简单的协议(输入请求,转交,响应)就是最古老,也最常用的服务器扩展接口CGI的本质。

6、CGI应用程序是独立于服务器的,所以几乎可以用任意语言来事先。CGI的处理对用户来说是不可见的。客户端完全不清楚服务器和CGI应用程序之间的转接过程。URL中出现字符cgi和可能出现的“?“是客户端发现使用了CGI的唯一线索。

隧道

1、Web隧道允许用户通过HTTP连接发送非HTTP流量,这样就可以在HTTP上捎带其他协议数据了,这类流量就可以穿过只允许Web流量通过的防火墙了。

2、Web隧道是用HTTP的CONNECT方法建立的。CONNECT方法请求隧道网关创建一条到达任意目的服务器和端口的TCP连接,并对客户端和服务器之间的后继数据进行盲转发。具体建立隧道方法看P218

3、CONNECT请求报文和HTTP报文一样,只不过起始行的方法为CONNECT。响应报文不需要包含Content-Type首部,因为此时连接只是对原始字节进行转接,不再是报文的承载者,所以不需要。

4、对于SSL隧道机制来说,无需在代理中实现SSL。SSL会话是建立在产生请求的客户端和目的Web服务器之间的,中间的代理服务器只是将加密数据经过隧道传输。

中继

1、HTTP中继是没有完全遵循HTTP规范的简单HTTP丹利。中继负责处理HTTP中建立连接的部分,然后对字节进行盲转发。

2、某些简单盲中继实现中存在的一个更常见问题是,由于它们无法正确处理Conneciton首部,所以有潜在的挂起keep-alive连接的可能。

时间: 2024-10-08 14:10:53

第8章 网关、隧道及中继的相关文章

【WEB HTTP】集成点:网关、隧道及中继

网关:网关可以作为某种翻译器使用,它抽象出了一种能够到达资源的方法.网关是资源与应用程序之间的粘合剂. 在不同http版本之间进行转换的Web代理和网关一样,他们会执行复杂的逻辑,以便在各个端点之间进行沟通.但因为他们在两侧使用的都是HTTP协议,所以从技术上说,他们仍然是代理. 通过一个斜杠"/"来分隔服务器端协议和客户端协议,并以此对网关进行描述.例如:HTTP/NNTP 协议网关: 服务器端Web网关(HTTP/**):请求流入原始服务器时,服务器端Web网关会将客户端HTTP请

【.NET Core项目实战-统一认证平台】第十五章 网关篇-使用二级缓存提升性能

原文:[.NET Core项目实战-统一认证平台]第十五章 网关篇-使用二级缓存提升性能 [.NET Core项目实战-统一认证平台]开篇及目录索引 一.背景 首先说声抱歉,可能是因为假期综合症(其实就是因为懒哈)的原因,已经很长时间没更新博客了,现在也调整的差不多了,准备还是以每周1-2篇的进度来更新博客,并完成本项目所有功能. 言归正传,本重构项目是在我根据实际需求重构,由于还未完全写完,所以也没进行压测,在2月份时,张善友老师给我留言说经过压测发现我重构的Ocelot网关功能性能较差,其中

【.NET Core项目实战-统一认证平台】第十六章 网关篇-Ocelot集成RPC服务

原文:[.NET Core项目实战-统一认证平台]第十六章 网关篇-Ocelot集成RPC服务 [.NET Core项目实战-统一认证平台]开篇及目录索引 一.什么是RPC RPC是"远程调用(Remote Procedure Call)"的一个名称的缩写,并不是任何规范化的协议,也不是大众都认知的协议标准,我们更多时候使用时都是创建的自定义化(例如Socket,Netty)的消息方式进行调用,相比http协议,我们省掉了不少http中无用的消息内容.因此很多系统内部调用仍然采用自定义

【.NET Core项目实战-统一认证平台】第七章 网关篇-自定义客户端限流

[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章我介绍了如何在网关上增加自定义客户端授权功能,从设计到编码实现,一步一步详细讲解,相信大家也掌握了自定义中间件的开发技巧了,本篇我们将介绍如何实现自定义客户端的限流功能,来进一步完善网关的基础功能. .netcore项目实战交流群(637326624),有兴趣的朋友可以在群里交流讨论. 一.功能描述 限流就是为了保证网关在高并发或瞬时并发时,在服务能承受范围内,牺牲部分请求为代价,保证系统的整体可用性而做的安全策略,避免单个服务

十分钟用Windows服务器简单搭建DHCP中继代理!!

                     十分钟用Windows服务器简单搭建DHCP中继代理!! 一.什么是中继代理? 大家都知道DHCP分配地址都需要用到IP广播,但是广播是不能在两个网段之间进行的.那么和DHCP服务器不是在同一个网段的客户机怎么获得相应的IP地址呢?这时,就要用到DHCP中继代理了. 在另一个Windows服务器上只要配备两块网卡,再安装一个简单的服务器"角色"就可以实现DHCP中继代理了! 二.实验拓补图 三.实验步骤 1.配置DHCP服务器 1.1).注意,

linux下搭建dhcp服务器及部署中继代理详解

搭建DHCP服务器,本机eth0网卡IP为1.1.1.18/24,网关为1.1.1.20 yum install -y dhcp  安装dhcp rpm软件包 cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample  /etc/dhcpd.conf vim /etc/dhcpd.conf,主要修改以几行: subnet 1.1.1.0 netmask 255.255.255.0 {              #设置子网段 option routers    

读《图解HTTP》总结--第五章

与HTTP协作的Web服务器 一台Web服务器可搭建多个独立域名的Web网站,也可作为通信路径上的中转服务器提升传输效率. 5.1 用单台虚拟主机实现多个域名 HTTP/1.1规范允许一台HTTP服务器搭建多个Web站点.比如,提供Web托管服务(Web Hosting Service)的供应商,可以用一台服务器为多个客户服务,也可以以每个客户持有的域名运行各自不同的网站.这是因为利用了虚拟主机(Virtual Host)的功能.即使物理层面只有一台服务器,但只要使用虚拟主机功能,则可以假象已具

《CODE》读后笔记——第1~13章

1.电筒密谈 Morse code表 文中提到"英语词汇就是一种编码".这句话仿佛有一种哲学思想在里面,万物皆可以以任何形式编码,只是编码的方式和途径不同.有些编码简单易懂易于接受,有些编码复杂难以理解. 简单的编码分配给常用的情况,复杂的编码分配给不常用的情况,这样可以提高效率. 实际上任何两种不同的东西经过一定的组合都可以代表任何种类的信息.二进制可以表示一切嘛! 2.编码与组合 树的用处.这个可能就是二叉树的原型吧? 3.布莱叶盲文与二元编码 摩尔斯编码是不定长的,但是布莱叶盲文

流量操控之SSH隧道与端口转发

目  录 第1章            概述... 3 1.1.         实现命令... 3 1.2.         SSH隧道类型... 3 第2章            SSH隧道... 4 2.1.         动态映射(Socks代理)... 4 2.1.1.   命令... 4 2.1.2.   相关参数说明... 4 2.1.3.   意义... 4 2.1.4.   运用场景... 4 2.1.5.   优点... 6 2.1.6.   缺点... 6 2.2.