A. Web Server干什麼用的
Web Server中文名稱叫網頁伺服器或web服務孫睜器。WEB伺服器也稱為WWW(WORLD WIDE WEB)伺服器,主要功能是提供網上信息瀏覽服務。Web伺服器可以解則亂歲析(handles)HTTP協議。當Web伺服器接收到一個HTTP請求(request),會返回一個HTTP響應(response)。Web伺服器可以解析(handles)HTTP協議。當Web伺服器接收到一個HTTP請求(request),會返回一個HTTP響應(response),例如送回一個HTML頁面。
(1)webserver源碼擴展閱讀:
Web伺服器傳送(serves)頁面使瀏覽器可以瀏覽,然而應用程序伺服器提供的是客戶端應用程序可以調用(call)的方法(methods)。確切一點,你可以說:Web伺服器專門處理HTTP請求(request),但是應用程序伺服器是通陪旁過很多協議來為應用程序提供(serves)商業邏輯(business logic)。
B. ESP-C3入門14. 實現基本的web server
在ESP-IDF中,創建Web伺服器涉及多個步驟,從配置到啟動Web伺服器,以及處理HTTP請求和WebSocket連接。下面是實現基本Web伺服器的詳細步驟:
首先,配置Web伺服器,使用httpd組件。創建httpd_config_t結構體,指定伺服器的埠、最大並發連接數、URI匹配處理器等選項。調用httpd_start函數啟動Web伺服器。默認使用HTTPD_DEFAULT_CONFIG宏創建配置。
接著,為不同的URI注冊處理器函數,以便根據請求的URI選擇相應的處理器進行處理。使用httpd_register_uri_handler函數注冊URI處理器,該函數接收HTTP伺服器句柄和包含URI路徑、HTTP方法、處理函數等信息的結構體指針。
實現URI處理器函數,用於處理HTTP請求。函數原型包含一個指向HTTP請求信息結構體的指針,該結構體包含了請求的各種參數和數據。在處理器函數中,通過HTTP請求信息結構體獲取HTTP請求的各種參數和數據,實現請求處理。
處理HTTP請求,常用函數有httpd_resp_send(),用於將響應發送回客戶端。在URI處理函數中,使用該函數將所需響應發送回客戶端。
處理WebSocket連接,ESP-IDF的Web伺服器支持WebSocket,通過httpd_ws_frame_t結構體表示WebSocket幀,使用httpd_ws_send_frame_async函數非同步發送WebSocket幀。為WebSocket URI注冊專門的處理器函數,處理WebSocket連接的各種事件。
注冊URI處理函數,將HTTP請求的URI路由到處理程序。使用httpd_register_uri_handler函數,傳入HTTP伺服器句柄和URI配置。
啟動HTTP伺服器,所有URI處理函數注冊後,調用httpd_start()函數啟動HTTP伺服器。
發送響應,在URI處理函數中,使用httpd_resp_send()函數將響應發送回客戶端。
關閉HTTP服務,使用httpd_stop()函數停止HTTP服務並釋放所有資源。
主要使用API說明:httpd_register_uri_handler用於將HTTP請求的URI路由到處理程序,httpd_handle_t是HTTP伺服器句柄,httpd_uri_t定義了HTTP請求的URI信息。httpd_query_key_value用於從查詢字元串獲取指定鍵的值,httpd_req_t的content_len用於分配緩沖區解析POST參數。
示例代碼包含項目結構、載入http_server模塊、建立web_server.h頭文件、實現web_server.c文件和在main.c中創建任務開啟Web伺服器。
請注意,我在此提供的內容可能需要根據實際的ESP-IDF環境和代碼進行調整。