最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

对生产与开发感到困惑

网站源码admin35浏览0评论

对生产与开发感到困惑

对生产与开发感到困惑

让我们使用一个非常常见的示例:与 Express.js 服务器通信的 React 应用程序。

开发中:前者监听localhost:3000,后者监听localhost:80。 在服务器端代码中,我们可以将“Allowed origin”定义为 localhost:3000。在 React 应用程序代码中,我们可以将我们的请求指向 localhost:80 并且一切正常,对吧?

这是我的困惑开始的地方(如果我错了请纠正我):

我了解到,一旦 React 应用程序在浏览器中加载,该应用程序向后端服务器(例如 Express.js 服务器)发出的任何后续请求都将包含发起请求的客户端的 IP 地址。

所以源将是用户 IP 地址,而不是托管 React 应用程序的地址?

部署此类应用程序的一种方法是什么?

我们是否应该首先以一个 DNS 名称部署服务器,更新我们的 React App 代码以指向该 DNS 名称而不是 localhost:80,然后通过其 DNS 名称部署指向该服务器的 React 应用程序?

这不会产生“跨源”问题吗?

在这种情况下,我们应该将什么定义为“允许的来源”?如果请求来自 IP 地址,那么它应该能够从任何地方接收请求,对吧?但是将原点设置为“*”似乎被认为是一种不好的做法,那么我们该怎么办呢?

此外,如果请求来自用户 IP 地址,那么为什么在生产中,源是 localhost:3000 而不仅仅是 localhost?

回答如下:

“允许来源”是指允许向您的后端发送请求的网站。 这里是关于那个的更多信息。

在您的示例中,React 应用程序(在您的浏览器中的 localhost:3000 上提供)将向后端发出请求(在您的服务器/计算机上的 localhost:80 上提供)。因此,这种情况下的“允许来源”是“localhost:3000”。

现在,开发环境可能只意味着本地主机,也可能意味着指定的 DNS,目的是从后端和前端测试部署的代码。这主要是供开发人员开发新功能和修复错误的沙箱。

客户使用的是生产环境,不应部署未经测试的代码。这有一个指定的 DNS 供客户端使用。

比如我们在Facebook上看到的是生产环境。 Meta 的开发人员显然不只是添加尚未完成的代码,因此他们需要一个开发环境来测试内容。当这些东西稳定后,它就会部署到生产环境中供每个用户查看。

在这种情况下,允许的来源是 www.facebook,客户端看到的 DNS。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论