天天看點

Web伺服器原理及簡單實作

 web系統由用戶端(浏覽器)和伺服器端兩部分組成。web系統架構也被稱為b/s架構。最常見的web伺服器有apache、iis等,常用的浏覽器有ie、firefox、chrome等。當你想通路一個網頁時,需要在浏覽器的位址欄中輸入該網頁的url(uniform resource locator,簡稱為url)位址,或者是通過超連結連結到該網頁。浏覽器會向該網頁所在的伺服器發送一個http請求,伺服器會對接收到的請求資訊進行處理,然後将處理的結果傳回給浏覽器,最終将浏覽器處理後的結果呈現給使用者。

web簡介

    web伺服器是可以向送出請求的浏覽器提供文檔的程式。

    1、伺服器是一種被動程式:隻有當internet上運作在其他計算機中的浏覽器送出請求時,伺服器才會響應。

    2 、最常用的web伺服器是apache和microsoft的internet資訊伺服器(internet information services,iis)。

    3、internet上的伺服器也稱為web伺服器,是一台在internet上具有獨立ip位址的計算機,可以向internet上的客戶機提供www、email和ftp等各種internet服務。

    4、web伺服器是指駐留于網際網路上某種類型計算機的程式。當web浏覽器(用戶端)連到伺服器上并請求檔案時,伺服器将處理該請求并将檔案回報到該浏覽器上,附帶的資訊會告訴浏覽器如何檢視該檔案(即檔案類型)。伺服器使用http(超文本傳輸協定)與客戶機浏覽器進行資訊交流,這就是人們常把它們稱為http伺服器的原因。

web伺服器不僅能夠存儲資訊,還能在使用者通過web浏覽器提供的資訊的基礎上運作腳本和程式。

工作原理

    web伺服器的工作原理并不複雜,一般可分成如下4個步驟:連接配接過程、請求過程、應答過程以及關閉連接配接。

(1)用戶端發送請求

  用戶端(通過浏覽器)和web伺服器建立tcp連接配接,連接配接建立以後,向web伺服器發出通路請求(如get)。根據http協定,該請求中包含了用戶端的ip位址、浏覽器的類型和請求的url等一系列資訊。

(2)伺服器解析請求

  web伺服器對請求按照http協定進行解碼來确定進一步的動作,設計的内容有三鼐要點:方法(get)、文檔(/sample.html)、和浏覽器使用的協定(http/1.1)其中方法告訴伺服器應完動的動作,get方法的含義很明顯是:伺服器應定位、讀取檔案并将它傳回給客戶。

web伺服器軟體現在就知道了,它應該找到檔案/sample.html,并使用http/1.1協定将記憶體傳回給客戶。資訊是經過與請求到來相同的連接配接發出的,是以伺服器不需要定們客戶或建立新的連接配接。

(3)讀取其它資訊(非必須步驟)

    web伺服器根據需要去讀取請求的其它部分。在http/1.1下,客戶還應給伺服器提供關于它的一些資訊。元資訊(metainformation)可用來描述浏覽器及其能力,以使伺服器能據此确定如何傳回應答。

(4)完成請求的動作

  若現在沒有錯誤出現,www伺服器将執行請求所要求的動作。要擷取(get)一個文檔,web伺服器在其文檔樹中搜尋請求的檔案(/sample.html)。這是由伺服器機器上作為作業系統一部分的檔案系統完成的。若檔案能找到并可正常讀取,則伺服器将把它傳回給客戶。

如果成功:檔案被發送出去。

  首先,web伺服器發送一個狀态碼及一些描述資訊。既然檔案已經找到,則發送狀态碼200,表示一切都ok ,文檔随後發出,因為發送的資訊是html文檔,是以content-type 取值為text/html。文檔長為1024個位元組,是以content-type 取1024 。伺服器軟體的辨別及檔案的時間屬性資訊也被包含在頭域中。

如果失敗:傳回錯誤訓示。

  如果請求的檔案沒有找到或找到但無法讀取,測請求無法滿足。這時将傳回不同于200的狀态碼。最常見的問題是請求中的檔案名拼寫有誤,是以伺服器無法找到該檔案。這種情況下,伺服器将發送一個狀态碼---404 給客戶。

(5)關閉檔案和網絡連接配接,結束會話。

當檔案已被發郵或錯誤已發出後,web伺服器結束整個會話。它關閉打開的的被請求檔案,關閉網絡端口進而結束網絡連接配接。有關的其它工作則是由用戶端來完成的,包括接收資料,并以使用者可讀的方式呈現出來。這些與伺服器無關。