React 需要 Web 服务器吗? Web 应用服务器和 React 如何通信?

React needs web server? How do the web application server and react communicate?

我是一名自学web开发的学生。 我正在开发一个购物中心网站作为我的个人项目,当我尝试制作登录页面时遇到了一些基本问题。

首先,我会在一开始就告诉你我项目的主要概念,以便你更容易理解我的问题。

我最初的想法和想法如下:

FRONT-END                                      BACK-END
 ----------          ----------------------------------------------------------------
|  CLIENT  | < --- > |   REACT   | < --- > |  API-SERVER  | < --- > |  DATABASE  |
|   REACT  |         |(WEB-SERVER)| 

当用户请求我的页面时,React(内置服务器)回复它。 然后,用户将获得SPA(客户端)。

SPA没有任何数据,它会从API服务器获取数据(因为获取代码被插入到.js文件中)。 然后, api 服务器内部的查询将从数据库中获取数据。 然后,API 服务器将数据提供给 SPA。

一切顺利,直到我开始考虑安全问题。如您所见,当我们访问其他网站时,他们使用的是 https 而不是 http。所以我想使用 https,因为保护个人数据免受坏人的侵害真的很重要。当我考虑我的想法时,但是,没有任何地方可以放置将 http 更改为 https 的代码。

另外,我明白 React 只是一个库,就像 reactjs.org 说的那样。所以我认为我能够使用内置网络服务器的原因是因为该应用程序是由 'create-react-app'.

制作的

最后,这里是主要问题。 据我所知,https 逻辑应该在网络服务器中。我的意思是处理客户端请求的服务器。

  1. 如果 react 是一个库是真的,我是否必须构建一个网络服务器? (我认为通过 Node.js 或其他语言构建 Web 服务器是正确的方法,因为库只是库..!)

  2. 如果我不需要搭建web服务器,我应该把逻辑放在哪里?

  3. 假设我已经完全准备好使用 https(我通过 Node.js 制作了一个网络服务器,并且我有一个 CA 来使用 TLS),然后是客户端和网络服务器能够安全通信。但是,所有调用 API 的代码都写在 .js 文件中。 这些文件现在是客户端的浏览器。这意味着客户端和 API 服务器没有安全连接,因为 API 服务器和 Web 服务器具有不同的域或端口。

也许问题3的总结:
3.1.当我在google上搜索时,我了解到网络应用服务器是处理网络服务器无法服务的请求。但是,在 SPA 中,请求来自客户端。这样对吗?

3.1.1。如果来自客户端的问题,如何证明客户端与Web应用服务器之间的通信是安全的?因为网络服务器和网络应用服务器有不同的域或端口!

there wasn't any place to put the code which changes http to https.

某处您有代码向 URL 发出 HTTP 请求以从 API 获取数据。该代码 必须 说明 URL 是什么。您可以在此处指定 URL 方案。

So I think the reason why I am able to use the built-in web server is because the application is made by 'create-react-app'.

React 是一个 JS 库。它没有内置的网络服务器。 create-react-app 安装 React,生成一些默认项目文件,并且 包含大量工具

Web 服务器仅供开发使用。它包括对开发有用但对生产效率低下的功能,例如热重载。

它还有一个 build script 输出静态文件以部署到您的生产 Web 服务器上。

您的生产服务器可以支持 HTTPS。它可能是也可能不是托管您的 API.

的同一台服务器