HTTP系列(七)—— 网关

2023-11-12

HTTP 刚诞生的年代,人们只是使用它来发送静态的在线文档,但是随着用户需求的驱动,静态的资源已经无法满足人们的需求了,人们更加期望的是在 Web 上发布复杂的资源。

所以,为了解决这个问题,就提出了网关的概念。

什么是网关

网关,抽象出了一种能够到达资源的方法,它是资源和应用程序之间的粘合剂。

应用程序可以通过 HTTP 请求网关来处理某条请求,网关可以提供一条响应。不仅如此,网关还可以向数据库发送查询语句,或者生成动态的内容。

那么,从上面的描述来看,网关既能处理请求,又能返回响应,这不是服务器的工作吗?

但是,网关具有一种转换协议的功能,看下面的示例:

 

 

 

(示例来源于 《HTTP权威指南》)

在 a 图中,网关收到了对 FTP URLHTTP 请求,然后网关打开 FTP 连接并向 FTP 服务器发布指令,最后将文档返回给客户端。这里就是将客户端发来的 HTTP 请求转换为 FTP 发送给服务器了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTTP系列(七)—— 网关 的相关文章

  • gRPC(HTTP/2) 比使用 HTTP/2 的 REST 更快吗?

    目标是引入一种性能更好的传输和应用层协议latency and 网络吞吐量 目前 该应用程序使用REST with HTTP 1 1并且我们遇到了很高的延迟 我需要解决这个延迟问题并且我愿意使用gRPC HTTP 2 or 休息 HTTP2
  • PHP 是否有与 Java 的 RequestDispatcher.forward 等效的功能?

    在 Java 中我可以编写一个非常基本的 JSPindex jsp像这样 这样做的效果是用户请求index jsp 或者只是包含目录 假设index jsp是目录的默认文档 将会看到home action没有浏览器重定向 即 forward
  • 为什么使用 HTTP 动词?

    因为动词的目标是像 server domain getallrecords 或 server domain delete1record 或类似的 URL 而getallrecords delete1record都是专门为特定目的而设计的 为
  • ReverseProxy取决于golang中的request.Body

    我想构建一个 http 反向代理 它检查 HTTP 主体 然后将 HTTP 请求发送到它的上游服务器 你怎么能在 Go 中做到这一点 初始尝试 如下 失败 因为 ReverseProxy 复制传入请求 修改它并发送 但正文已被读取 func
  • 使用 Google OAuth2.0 时出现错误请求

    从 Salesforce 中使用 Google OAuth 时 我收到 400 错误请求 以下错误与无效的 grant type 有关 但如果您查看 使用刷新令牌 下的文档 您会发现它是正确的 https developers google
  • 为什么使用HTTP协议时需要指定端口号?

    即使我们使用HTTP协议 为什么还需要用IP地址指定端口号 例如 http xyz 8080 这到底是什么意思 我们已经知道 在使用 HTTP 时 请求将在端口 80 上提供服务 那么为什么我们要显式指定端口呢 HTTP 的默认端口为 80
  • 服务器返回网页 404,但页面在浏览器中显示正常 - 为什么?

    一个奇怪的网页横亘在我面前 作为一名开发人员 我必须解开这个谜团 在任何浏览器中访问网页时 一切似乎都很正常 网页按预期显示 但是当查看控制台时 服务器实际上返回了 404 状态代码 那么浏览器为什么要渲染页面呢 查看正文显示返回了有效的
  • 除了 GET 和 POST 之外,如何从浏览器向 RESTful 应用程序发送任何内容?

    我没有得到 RESTful 的东西 是的 我知道如何从浏览器向我的应用程序发送 GET 请求 这是通过 URL 链接 a href user someone 并且还可以通过form方法发送POST请求 a
  • 如何确定服务器是否支持 Range 标头?

    我一直在尝试使用 Range 标头值从特定点流式传输音频 但我总是从一开始就得到歌曲 我正在通过程序执行此操作 因此不确定问题是否出在我的代码中或服务器上 如何确定服务器是否支持 Range 标头参数 Thanks 方式HTTP规范 htt
  • 如何禁用 HTTP 的 HSTS 标头?

    我已将以下内容插入到我网站的 htaccess 中 以便能够访问HSTS预加载列表 https hstspreload appspot com
  • 如何使用 Emacs 通过 HTTP 打开远程文件?

    大多数开源软件都通过某些 HTTP 服务公开其代码 我想从 Emacs 打开并浏览此类代码 但 AFAICS trapmp 只允许ssh and ftp 因此 我的第一个问题是如何打开 HTTP URL 以便在 Emacs 中进行读取 然后
  • 使用特定 HTTP 方法链接到页面 (DELETE)

    如何像 Rails 那样链接到页面并让浏览器使用 DELETE 方法调用它 我试过 a href DELETE ME a 但不起作用 我使用 Node js 所以我可以用它来处理 DELETE 方法 你不能 链接只会触发 GET 请求 您可
  • Android - API 请求

    我开发了一个应用程序 它也在 iPhone 上 问题出在 api 请求上 我为所有请求设置了超时 有时会出现 30 60 秒的中断 看起来这个应用程序执行了几个请求 然后就中断了 一直超时 大约 45 秒后一切正常 不知道是服务器问题还是安
  • 面向服务的架构 - AMQP 或 HTTP

    一点背景 非常大的整体 Django 应用程序 所有组件都使用相同的数据库 我们需要分离服务 以便我们可以独立升级系统的某些部分而不影响其余部分 我们使用 RabbitMQ 作为 Celery 的代理 现在我们有两个选择 使用 REST 接
  • 在java中轮询Http服务器(重复发送http get请求)

    当对其进行 REST 调用时 我的 Web 服务器会发送一些信息 我想不断轮询该服务器 间隔5秒后重复发送HTTP GET请求 以检查返回的信息是否有任何变化 做到这一点最有效的方法是什么 您能提供一些代码示例吗 请注意 我只想开发客户端代
  • $http.get() 与 JSON 数据

    我正在编写一个服务器应用程序 并希望客户端使用正文中的数据来参数化我的 GET 方法 如下所示 http v GET http localhost 3000 url text 123 foo bar GET url HTTP 1 1 Acc
  • Django HTTPS 和 HTTP 会话

    我使用 Django 1 1 1 和 ssl 重定向中间件 通过 HTTPS 创建的会话数据 身份验证等 在站点的 HTTP 部分中不可用 无需将整个站点设置为 HTTPS 即可使其可用的最佳方法是什么 这是设计使然 您无法轻易更改 当通过
  • 为什么我的 Github 托管网站响应 HTTP 302 而不是 200?

    我拥有该域名penkov id au http penkov id au 我主持一个blog http michael penkov id au blog 2014 01 02 reinventing the wheel html usin
  • put方法中的Angularjs文件上传不起作用

    我有一个简单的待办事项应用程序 我试图在其中上传照片和单个待办事项 现在我已经创建了这个工厂函数来负责待办事项的创建 todosFactory insertTodo function todo return http post baseUr
  • 以下 Android HTTP 示例/教程 - 为网络活动实现异步任务的问题

    我正在尝试遵循有关发布 HTTP 数据的教程 但是由于 IO 线程上的网络活动 它强制关闭主线程 因此我尝试实现 AsyncTask 正如其他几个有用的 SO 用户所建议的那样 但是我已经屠宰了代码 整个辣酱玉米卷饼的力量就向我逼近了 ht

随机推荐

  • 点云三维重建的原理,在医学图像分析中使用ICP算法进行点云配准

    1 摘要 在本文中 我们结合了ICP算法 一种基于3D尺度不变特征变换的方法 对3D自由形式闭合的曲面 人类头骨的3D模型 进行配准 不同于点和表面的配准 我们提出的基于ICP算法的方法可以更好地捕获数据的整体性质 例如骨骼厚度 文中提出的
  • 伺服驱动器cn1引脚定义_PCI-9014端子板DIN-68S和安川驱动器(SGDV-R90A01A002000)接线图...

    摘要 PCI 9014端子板DIN 68S和安川驱动器 SGDV R90A01A002000 接线图 硬件 运动控制卡型号 PCI 9014 以下接线仅以X轴为例说明 伺服驱动器型号 SGDV R90A01A002000 伺服电机型号 SG
  • 【物联网开发基础】在keil中怎么烧写程序

    什么是keil Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统 与汇编相比 C语言在功能上 结构性 可读性 可维护性上有明显的优势 因而易学易用 Keil提供了包括C编译器 宏汇编 链接器 库
  • L1-058 6翻了 (15 分)-PAT 团体程序设计天梯赛 GPLT

    解题思路 遍历字符串 不是6字符的直接输出 出现6的时候 往后判断出现了几次6 进而决定是否替换字符串 include
  • Swift5 不是循环的双链表

    小萌毕业5年了 一直在做移动端的工作 OC和Swift 最近比较流行的就是Swift了 学习过OC和Swift的基本原理 听的云里雾里的 听了好几遍才理解 因此下定决心要学习数据结构 学习之后发现数据结构和算法不愧是开发人员必学的知识 双链
  • Visual Studio 2019实现c51上位机控制数码管显示数字

    Visual Studio 2019实现c51上位机控制数码管显示数字 初学者编写上位机程序 上位机编写环境 上位机窗体设计 上位机界面功能代码 form界面 打开串口 代码 发送 按钮代码 上位机机全部代码 单片机烧录代码 效果图 初学者
  • PAT1-第39级台阶(递归)

    第39级台阶 小明刚刚看完电影 第39级台阶 离开电影院的时候 他数了数礼堂前的台阶数 恰好是39级 站在台阶前 他突然又想着一个问题 如果我每一步只能迈上1个或2个台阶 先迈左脚 然后左右交替 最后一步是迈右脚 也就是说一共要走偶数步 那
  • 捕鱼游戏、slots游戏出海技术支持

    捕鱼和slots类游戏的核心为数值 在美术 程序 音效 玩法都OK的情况下 数值是核心 这类游戏的数值思维方式要区别于其它类型的游戏看待 对于转型进入这个领域的团队和老板在数值上面 算法上面没有积累 对产品理解不够深入最后都是以失败告终 在
  • [QNX700]QNX 7.0 平台QT开发环境配置

    锋影 email 174176320 qq com 如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额0 1元起步 多少随意 声明 本文只用于个人学习交流 若不慎造成侵权 请及时联系我 立即予以改正 1 QNX q
  • feign 出现 too many bytes written executing xx Or incomplete output stream executing xx

    问题 通过FeignClient调用第三方接口时 出现如下报错 incomplete output stream executing xxx 或者 too many bytes written executing POST 解决办法 自定义
  • 【windows系统cmd下打开管理员模式】

    runas noprofile user Administrator cmd
  • 离职报告提交前一秒,再检查下这些测试思维面试题你都会了么?

    创建坐席组的功能模块 如何进行测试用例设计 解答 功能测试 使用等价类划分法去分析创建坐席的每个输入项的有效及无效类 同步考虑边界值去设计对应的测试用例 先进行冒烟测试 正常创建坐席 坐席组编号自动生成且确认 6 位数字唯一 名称输入 10
  • UE4材质11_材质参数集

    11 1 参数集全局控制材质 创建材质参数集 MPC 材质参数集的前缀 材质参数集可以添加标量和向量 标量一般就是数字 向量就是颜色或者是X Y Z 一个材质最多只能使用两个材质参数集 11 2 蓝图传递参数集及实例参数 打开关卡蓝图 添加
  • WPF中WindowFormsHost始终置顶的有效解决方案

    背景 WPF的原生控件并不具备自身的句柄 即使使用偏门的方式获取的结果也都是控件所在窗体的句柄 并不代表该控件本身的资源 这是由WPF的自身的机制决定的 csharp IntPtr hwnd1 new WindowInteropHelper
  • 【从零开始学QuartusII封装网表文件】——FPGA设计不积跬步101

    从零开始学QuartusII封装网表文件 FPGA设计不积跬步101 如果你正在从事FPGA的设计工作 你一定会遇到需要在PCB中使用FPGA芯片的情况 此时就需要进行封装网表文件 本文将为大家介绍如何使用QuartusII软件进行封装网表
  • VS:define_CRTDBG_MAP_ALLOC宏检测windows上的code是否有内存泄露

    VS中自带内存泄露检测工具 若要启用内存泄露检测 则在程序中添加以下语句 define CRTDBG MAP ALLOC include
  • matlab 极坐标画圆

    clc clear all t linspace 0 2 pi 50 a size t r 2 ones a figure 1 polar t r r linspace函数的用法 linspace x1 x2 N x1 x2 N分别为起始值
  • Java程序员从笨鸟到菜鸟之(五十三)细谈Hibernate(四)Hibernate常用配置文件详解...

    初学hibernate的童鞋 刚开应该都有这种感觉 hibernate的配置文件好麻烦 还不如jdbc访问数据库呢 直接写代码 多方便 用hibernate还要写代码 还要写配置 太麻烦了 至少我刚开始学习的时候就是这么想的 配置文件确实有
  • java代码的执行顺序

    1 java代码的执行顺序如下 开始 gt 父类的静态代码块 gt 子类的静态代码块 gt 父类的普通代码块 gt 父类的构造方法 gt 子类的普通代码块 gt 子类的构造方法 gt 结束 注意事项 1 静态代码块 也就是被关键字stati
  • HTTP系列(七)—— 网关

    在 HTTP 刚诞生的年代 人们只是使用它来发送静态的在线文档 但是随着用户需求的驱动 静态的资源已经无法满足人们的需求了 人们更加期望的是在 Web 上发布复杂的资源 所以 为了解决这个问题 就提出了网关的概念 什么是网关 网关 抽象出了