我想要一個網站發送要存盤到資料庫的資料。因此,我認為我需要一個 Web 服務器,監聽 HTTP,決議 POST,提取資料并存盤到資料庫?
我希望 Web 服務器是 C 。
但是,我正在努力尋找一個簡單的例子。我認為這很簡單,因為我們只是在偵聽 TCP 套接字,一旦接收到所有資料,這只是一個字串決議練習?我能找到的所有例子似乎都過于復雜了。例如:
https://www.boost.org/doc/libs/1_72_0/libs/beast/example/http/server/async/http_server_async.cpp
當然它不應該只需要 300-400 行來監聽一個套接字并決議一個字串嗎?
我的理解是否錯誤/是否有一種簡單的方法可以在 C 中處理 HTTP POST?
uj5u.com熱心網友回復:
用 C 撰寫自己的 Web 服務器
- 一次僅支持來自單個客戶端的單個 HTTP 連接,
- 假設傳入的 HTTP 請求永遠不會格式錯誤,并且始終采用某種格式,并且始終具有某種型別,
- 在發生意外情況時,不需要提供正確的 HTTP 回應,
不會太難。但是,如果您希望您的 Web 服務器完全兼容HTTP/1、HTTP/2或HTTP/3,那么撰寫這樣的服務器將是一項繁重的作業,因為這些標準長達數十甚至數百頁。
使用現有的 HTTP 服務器軟體(例如Apache HTTP Server)并撰寫自己的程式來服務單個 HTTP 請求并配置服務器以針對某些 URL 呼叫這些程式可能會更有意義。這樣,您就不必處理 HTTP 的大部分細節,但您仍然需要處理 HTTP 請求和 HTTP 回應。
一些腳本語言,例如PHP(設計用于在 Web 服務器上運行)為您處理大部分剩余的 HTTP 細節,因此您不必擔心解釋 HTTP 請求標頭和創建 HTTP 回應標頭. 這些腳本語言通常還允許您連接到外部資料庫服務器。
如果您不想使用腳本語言,但希望由用 C 撰寫的程式處理單個 HTTP 請求,那么這也是可能的,例如使用CGI或 HTTP 服務器軟體提供的 API。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/493777.html
