Web服務器的工作原理
一、Web服務器工作原理概述
我們最常說的Web服務器指的是網站服務器,它是建立在Internet之上並且駐留在某種計算機上的程序。Web服務器可以向Web客戶端(如瀏覽器)提供文檔或其他服務,只要是遵循HTTP協議而設計的網絡應用程序都可以是Web客戶端。
Web服務器和HTTP服務器可以說是同一個東西,當然非得細分的話,HTTP服務器是建立在HTTP協議之上的提供文檔瀏覽的服務器,更多的是提供靜態的文件。而Web服務器涵蓋了HTTP服務器(這一點可以自行百度百科), Web服務器不僅能夠存儲信息,還能在用戶通過Web瀏覽器提供的信息的基礎上運行腳本和程序。
二、Web服務器工作原理圖解
這張圖,將一次Web服務的工作流程過一遍,我們假設以瀏覽器作為客戶端
(1) 用戶做出了一個操作,可以是填寫網址敲回車,可以是點擊鏈接,可以是點擊按鍵等,接着瀏覽器獲取了該事件。
(2) 瀏覽器與對端服務程序建立TCP連接。
(3) 瀏覽器將用戶的事件按照HTTP協議格式**打包成一個數據包,其實質就是在待發送緩沖區中的一段有着HTTP協議格式的字節流。
(4) 瀏覽器確認對端可寫,並將該數據包推入Internet,該包經過網絡最終遞交到對端服務程序。
(5) 服務端程序拿到該數據包后,同樣以HTTP協議格式解包,然后解析客戶端的意圖。
(6) 得知客戶端意圖后,進行分類處理,或是提供某種文件、或是處理數據。
(7) 將結果裝入緩沖區,或是HTML文件、或是一張圖片等。
(8) 按照HTTP協議格式將(7)中的數據打包
(9) 服務器確認對端可寫,並將該數據包推入Internet,該包經過網絡最終遞交到客戶端。
(10) 瀏覽器拿到包后,以HTTP協議格式解包,然后解析數據,假設是HTML文件。
(11) 瀏覽器將HTML文件展示在頁面
以上為Web服務器工作基本原理。其實不難發現,這僅僅只是一個簡單的網絡通信。我們應該深信,作為一個服務器,其根本的工作無非有三個
接收數據 2. 發送數據 3. 數據處理
而Web服務器的本質就是 接收數據 ⇒ HTTP解析 ⇒ 邏輯處理 ⇒ HTTP封包 ⇒ 發送數據
高級的服務器無非就是將這三個部分更加細致的設計了。