我敢肯定之前有 100 人問過這個問題,但我找不到合適的關鍵詞來谷歌搜索。
簡而言之:如何讓 Web 客戶端以正確的方式向 Web 服務器發送資訊?
我在帶有 ubuntu 的樹莓上用 apache 2 建立了一個簡單的網站。一些非常基本的東西。我想在我的網站上有一個按鈕,讓我的服務器運行一個腳本(我用 C 撰寫了那個腳本,但我不在乎是否必須翻譯它)。一種解決方案是使用 JS 客戶端在特定埠(例如 50000)上向我的服務器發送訊息,并讓服務器使用自定義偵聽器在該埠上偵聽。
這很好用,但我確信有正確的方法可以做到這一點。我應該如何做到這一點,這樣人們才不會對我的架構感到太生氣?( 如果客戶端阻止其他埠,則在瀏覽器上使用 80 和 443 以外的其他埠可能無法正常作業)
uj5u.com熱心網友回復:
您要做的是創建一個 RESTful Web API。服務器可以監聽特定的埠,并以不同的方式處理不同的 HTTP 請求。您將需要使用控制器、服務和可能的資料訪問物件層。您可以擁有要在代碼中運行的腳本,也可以讓您的代碼在收到正確型別的有效請求(GET、POST、PATCH、PUT 等)后簡單地呼叫以執行 bash 或 shell 腳本) 使用正確的引數。
https://www.tutorialspoint.com/nodejs/nodejs_restful_api.htm
你是對的,嘗試讓一個埠上的單個端點做一件事,而另一個埠上的另一個端點做其他事情是一個錯誤的決定。首先,單個應用程式只能偵聽單個埠(或至少應該只偵聽單個埠),因此您需要為您希望后端服務器執行的所有操作啟動一個新應用程式。其次,你不能是語意的。您的用戶將不得不查看埠 - 操作映射字典,而不是能夠(例如)發送請求yourService.com/run/script/1234以運行 ID 為 1234 的腳本。
以下是一些有關 HTTP 請求的資訊,可幫助您入門:https ://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/435607.html
標籤:javascript 网络 服务器 网络服务器 沟通
