您可以从另一台服务器发送 HTTP 响应吗?

2024-02-08

也许是愚蠢的问题。

我最近一直在玩 Node.js,喜欢设置服务器和发出请求等是多么容易。我还没有尝试过,但想知道如何将数据从一个请求转发到另一台服务器,并有第二个服务器向客户端发送响应。

这可能吗?

i.e.

客户端 -> 服务器 A -> 服务器 B -> 客户端 X

让我感到困惑的是如何发送给同一个客户?此信息应该出现在请求标头中,不是吗?是否需要将该信息转发给服务器 B?

我现在的情况是在 Node.js 服务器上接受请求,并且希望将一些数据转发到我创建的 Laravel API 并将响应发送到客户端表单。

感谢您的回答,

Matt


这很容易做到request https://github.com/request/request module.

下面是“服务器 A”的示例实现,它将所有请求按原样传递到服务器 B,并将其响应发送回客户端:

'use strict';
const http    = require('http');
const request = require('request').defaults({ followRedirect : false, encoding : null });

http.createServer((req, res) => {
  let endpoint = 'http://server-b.example.com' + req.url;
  req.pipe(request(endpoint)).pipe(res);
}).listen(3000);

代替request你也可以用http https://nodejs.org/api/http.html模块,但是request让一切变得更容易。

任何要求http://server-a.example.com/some/path/here将传递到服务器 B,具有相同的路径(+方法、查询字符串、正文数据等)。

followRedirect and encoding在将请求传递到其他服务器时,我发现这两个选项很有用。他们被记录在案here https://github.com/request/request#requestoptions-callback.

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

您可以从另一台服务器发送 HTTP 响应吗? 的相关文章

  • readFile() 和 readFileSync() 之间的区别

    以下代码将index html 的内容 仅包含文本hello world 输出到浏览器 然而 当我更换readFile with readFileSync 请求超时 我缺少什么 是否需要不同类型的缓冲区 我使用的是node 0 61 和ex
  • 创建shell可执行全局节点模块

    我尝试创建节点模块 我成功了 我用了npm install g在代码目录中 它创建了这个模块文件夹 AppData Roaming npm node modules myfirstmodule 现在我想让一个文件作为命令可执行 例如 pm2
  • 规则和夏令时

    我在用着rrule https github com jakubroztocil rrule在我的数据库中创建和存储事件 一切正常 直到我发现我的重复事件与 3 月 31 日之后有一个小时的差异 在法国 这一天我们进行夏令时更改 实际上 我
  • 枚举nodejs中的系统驱动器

    有没有办法检索计算机上所有逻辑驱动器的驱动器名称 我查看了 fs api 但从那里我只能枚举给定目录的文件和目录 我不确定 驱动器名称 是什么意思 如果您的意思是以下形式的驱动器 PhysicalDriveN 我遇到了同样的问题并实现了这个
  • ElectronJS 捕获屏幕质量低

    我正在使用 ElectronJS 测试屏幕捕获 我可以捕获屏幕 但捕获的视频质量低于原始视频 操作系统 Linux Mint 20 电子版本 11 1 0 这是我的代码 我选择我的屏幕 然后使用以下命令在电子应用程序中显示捕获的屏幕vide
  • 使用 with 的热切加载模型,但给它起了另一个名字 - Laravel 5.2

    是否可以使用 with 方法来使用预加载 但给它另一个名称 就像是 gt with documents as product documents documents as categories 我有一个可以是产品或类别的文档表 急切加载可以
  • 如何使用 Node.js 在 Firebase 中注册用户?

    PROBLEM 0 用户是在 Firebase 的身份验证系统中创建的 我在 身份验证 选项卡中看到它 1 但没有对数据库进行任何更改 2 页面似乎无限加载 3 控制台仅记录 Started 1 CODE router post regis
  • NodeJS 内存增长 - (系统)内存泄漏?

    我在我们的生活环境中遇到了奇怪的内存泄漏 其中 system 堆中的对象不断增长 堆转储 Here is a memory dump where the memory usage grew to 800MB 请注意 该内存保留在Genera
  • npm 脚本:node-sass 不监视部分 sass 文件

    我有这个项目结构 src assets css sass main scss variables scss 我正在尝试编写一个 npm 脚本 该脚本将监视我的所有 scss 文件 包括部分文件 中的更改 然后仅编译我的 main scss
  • PHP 是否有与 Java 的 RequestDispatcher.forward 等效的功能?

    在 Java 中我可以编写一个非常基本的 JSPindex jsp像这样 这样做的效果是用户请求index jsp 或者只是包含目录 假设index jsp是目录的默认文档 将会看到home action没有浏览器重定向 即 forward
  • Laravel 雄辩的 withCount() 应该比 with() 慢

    所以我问这个的原因是在我当前的应用程序中withCount 与仅通过以下方式获取关系的所有数据相比 响应时间几乎增加了三倍with 并只是从前端获取长度 javascript 我认为使用的要点withCount 是为了加快查询速度 但也许我
  • 从React Redux中的package.json获取版本号(create-react-app)

    OP 编辑 如果其他人遇到此问题 该应用程序是使用创建的创建反应应用程序 https github com facebookincubator create react app 这限制导入到 src 文件夹内 但是如果你将react scr
  • 垃圾收集器不适用于 NodeJS / Chrome 中的类型化数组

    我最初将其记录为原项目中的一个问题 https github com nodejs help issues 3590 它立即转移到帮助主题 没有很好的解释 所以现在我想在这里提问 如果我们在 NodeJS v14 v16 v17 中运行以下
  • 我可以在 Node 的标头中发送带有 cookie 的 GET 请求吗?

    在浏览器中 如果我发送 GET 请求 该请求同时会发送 cookie 现在我想模拟Node的GET请求 那么代码怎么写呢 使用奇妙的request https github com mikeal request 默认情况下启用库 cooki
  • Node.js 中的 http.request 是否有默认超时?

    在 Node js 中有一个服务器的默认超时 对于传入的 HTTP 请求 120000 毫秒 2 分钟 请参阅HTTP s server timeout文档 http nodejs org api http html http server
  • 如何使用 exceljs 读取 .xls 文件?

    我无法使用 exceljs 库读取 xls 文件 我还尝试使用 fs 更改 xlsx 中的文件后进行读取 但仍然无法从该文件中读取数据 有没有办法使用 exceljs 读取 xls 文件 虽然它的文档没有明确说明 exceljs仅支持 XL
  • dotnet 核心并行或同时构建

    In this https github com gatimus DotnetParallelBuild解决方案我有2个应用程序 AppA AppB共享类库Shared 我尝试过自动化这些并行的构建 运行电源外壳 https github
  • Spring webflow 应用程序:HTTP 302 暂时移动

    我的 java 应用程序中的每个请求都会生成另外 2 个带有 HTTP 302 错误的请求 例如 如果请求查看名为板 html 这个请求是从首页 html 我收到按以下顺序生成的 3 个请求 POST home html 302 Moved
  • 如何验证最终用户经过身份验证的令牌(使用 Firebase 身份验证)来调用 google cloud run 端点?

    请帮助使用 firebase 身份验证在云运行中进行最终用户身份验证 简短的介绍 我从 firebase 函数提交 Authorization Bearer idToken 标头 并使用电子邮件 密码 firebase 用户进行身份验证的
  • Laravel 中如何返回数组而不是集合?

    在 Laravel 中 可以仅选择一个字段并将其作为集合 数组返回 例如考虑模型Foo链接到表foos其中有字段id a b c 考虑以下示例数据 1 10 15 20 1 12 15 27 1 17 15 27 1 25 16 29 1

随机推荐

  • 根据日期分割数据框

    我正在尝试根据日期将数据框分成两个 此处的相关问题已解决 根据日期将数据帧分成两部分 https stackoverflow com questions 37532098 split dataframe into two on the ba
  • Chrome 语音合成具有较长的文本

    我在 Chrome 33 中尝试使用语音合成 API 时遇到问题 它可以完美地处理较短的文本 但如果我尝试较长的文本 它就会停在中间 一旦停止后 语音合成将无法在 Chrome 中的任何地方工作 直到浏览器重新启动 示例代码 http js
  • 责任链模式是否可以很好地替代一系列条件?

    当您需要按特定顺序执行一系列操作时 责任链模式是否可以很好地替代一系列条件 用这样的条件替换简单的方法是个好主意吗 public class MyListener implements MyHttpListener if false the
  • 线程安全类是否应该在其构造函数末尾有一个内存屏障?

    当实现一个线程安全的类时 我是否应该在其构造函数末尾包含一个内存屏障 以确保任何内部结构在可以访问之前已完成初始化 或者消费者有责任在使实例可供其他线程使用之前插入内存屏障 简化问题 下面的代码中是否存在竞争危险 由于初始化和线程安全类的访
  • 使用 Tensorflow.js 计算损失梯度

    我正在尝试使用 Tensorflow js 计算与网络可训练权重相关的损失梯度 以便将这些梯度应用于我的网络权重 在 python 中 这可以使用 tf gradients 函数轻松完成 该函数需要两个表示 dx 和 dy 的最小输入 但是
  • Scala 中如何按字符串拆分字符串

    在 Ruby 中 我做了 string1 string2 split 在 Scala 中 我找不到如何split使用字符串 而不是单个字符 REPL 甚至比 Stack Overflow 更容易 我只是按原样粘贴了您的示例 Welcome
  • 动态添加一个类到 Bootstrap 'popover' 容器

    我想用一个data 元素 例如 data class或类似 将新类 或 ID 我不再挑剔了 附加到顶级弹出窗口 div 我目前的代码如下 jQuery a rel popover popover placement bottom trigg
  • 如何生成键盘事件?

    简短的摘要 我正在尝试创建一个程序 将键盘事件发送到计算机 出于所有目的 模拟事件应被视为键盘上的实际击键 原帖 我正在寻找一种使用 python 生成键盘事件的方法 假设该函数接收到一个必须模拟按下的键 如下所示 keyboardeven
  • 如何监控 FIFO?

    我想通过设置该流量的只读终端窗口来调试两个进程之间的问题 我可以简单地使用现有的标准 Linux 实用程序来实现这一点吗 FIFO 位于 run myfifo并在其中一个进程中创建 Create a FIFO if one doesn t
  • 如何将 luaXML 与 LUA 5.3 一起使用

    我将使用 LUA 我的目标是运行一个使用 lausocket 和 luaXML 来完成其任务的脚本 我使用的是 Windows 2012 Server 64 位 我的 IBM IDOL 11 文件夹中已经有 LUA 编译器的两个文件 lua
  • 我认为 SqlParameter.IsNullable 仅在……时才有意义?

    1 When SqlParameter IsNullable被设定为true 已收到null值转换为DBNull Value并发送到数据库 因此我假设设置IsNullable to true仅当 GridView 的情况下才有意义Param
  • WPF - 将组合框项目前景绑定到其值

    我创建了一个组合框 列出了 System Windows Media Colors 预定义的颜色 使用此问题中所述的方法 如何使用 XAML 在 WPF 中列出颜色 https stackoverflow com questions 562
  • Jenkins:使用 Groovy 清理工作空间

    我的 Jenkins 设置没有节点 所有构建都在同一台机器上运行 我想设置一个 Groovy 脚本来清理旧工作区 所以我想使用 proj scm processWorkspaceBeforeDeletion Nonnull Job
  • HTTPS 与 NSURLConnection - NSURLErrorServerCertificateUntrusted

    我有一个可以通过 http 连接良好的应用程序 尝试 https 时 我收到错误消息 指出根证书不受信任 我找到了我的站点证书 其 CA 证书和 CA 根证书的 URL 并通过 Safari 将它们添加到手机中 现在 当我进入 首选项 gt
  • Visual Studio 中的单元测试 MVC Web 应用程序和 QTAgent 问题

    我一直在尝试在 Visual Studio 中为 MVC 应用程序运行单元测试 并不断收到以下错误 指定的 URL http localhost 21496 与 有效目录 配置为在 IIS 中的 ASP NET 中运行的测试需要 URL 存
  • Javascript的tabIndex属性是跨浏览器的吗?

    我遇到了一个问题 并且这个答案 https stackoverflow com a 16492878 1223693解决了它 它使用该属性tabIndex 这个属性是跨浏览器的吗 哪些浏览器支持 通常我会使用 Google 来完成此任务 但
  • 无法在 SOAPUI 中导入 WSDL 文件 - NT 身份验证弹出窗口(加载 WSDL 时出错)

    我以前从未遇到过类似的问题 我尝试过 SOAP 4 0 1 和 SOAP 5 1 2 我在 Windows 上尝试过 也在 Windows Server 2008 上尝试过 我尝试导入 WSDL 出现 NT 身份验证对话框 指定 NT 身份
  • 运行时错误 91 未设置对象变量或 With 块变量 - 使用公共变量

    我目前正在开展一个项目 该项目整合了许多工作簿中的信息 虽然应用程序的第一个版本使用Select and Activate从我在本网站上看到的信息来看 应该尽可能避免使用这些方法 因此 我目前正在重新修改代码以尽可能消除这些问题 我正在使用
  • 仅通过 CSS 定位 IE9 [重复]

    这个问题在这里已经有答案了 只是想知道我的技巧包里有这些 IE 黑客 9 for IE8 and below for IE7 and below for IE6 即例如 body border 2px solid blue border 2
  • 您可以从另一台服务器发送 HTTP 响应吗?

    也许是愚蠢的问题 我最近一直在玩 Node js 喜欢设置服务器和发出请求等是多么容易 我还没有尝试过 但想知道如何将数据从一个请求转发到另一台服务器 并有第二个服务器向客户端发送响应 这可能吗 i e 客户端 gt 服务器 A gt 服务