制作网络服务器 运行 脚本

Making web server run scripts

我确定之前有 100 个人问过这个问题,但我找不到 google 的正确关键词。

简单地说:如何让网络客户端以正确的方式向网络服务器发送信息?

我在 ubuntu 的树莓派上用 apache 2 建立了一个简单的网站。一些非常基本的东西。我想在我的网站上有一个按钮,使我的服务器 运行 成为一个脚本(我用 C++ 编写了该脚本,但我不在乎是否必须翻译它)。一种解决方案是使用 JS 客户端在特定端口(比如 50000)上向我的服务器发送消息,并让服务器使用自定义侦听器侦听该端口。

这很好用,但我确信有正确的方法可以做到这一点。我应该怎么做才能让人们不会对我的架构太生气? (+如果客户端阻止其他端口,在浏览器上使用 80 和 443 以外的其他端口可能无法正常工作)

您要做的是创建一个 RESTful 网站 API。服务器可以侦听特定端口并以不同方式处理不同的 HTTP 请求。您将需要使用控制器、服务和可能的数据访问对象层。您可以在代码中包含您想要 运行 的脚本,或者您可以让您的代码在收到有效请求后简单地调用以执行 bash 或 shell具有正确参数的正确类型(GET、POST、PATCH、PUT 等)。

https://www.tutorialspoint.com/nodejs/nodejs_restful_api.htm

你是对的,尝试让一个端口上的单个端点做一件事,而另一个端口上的另一个端点做另一件事是一个错误的决定。首先,单个应用程序只能侦听一个端口(或者至少应该只侦听一个端口),因此您需要启动一个新应用程序来处理您希望 back-end 服务器执行的所有操作。其次,你不能是语义化的。您的用户将不得不查看端口-操作映射的字典,而不是能够(例如)将请求发送到 yourService.com/run/script/1234 到 运行 ID 为 1234 的脚本。

这里有一些关于 HTTP 请求的信息可以帮助您入门:https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods