对生产与开发感到困惑

编程入门 行业动态 更新时间:2024-10-07 12:26:06

对生产与开发感到<a href=https://www.elefans.com/category/jswz/34/1770560.html style=困惑"/>

对生产与开发感到困惑

让我们使用一个非常常见的示例:与 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。

更多推荐

对生产与开发感到困惑

本文发布于:2024-05-30 14:47:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770609.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:困惑

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!