Web伺服器原理及簡單實現

來源:互聯網
上載者:User

標籤:c   class   ext   http   a   int   

 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))與客戶機瀏覽器進行資訊交流,這就是人們常把它們稱為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伺服器結束整個會話。它關閉開啟的的被請求檔案,關閉網路連接埠從而結束網路連接。有關的其它工作則是由用戶端來完成的,包括接收資料,並以使用者可讀的方式呈現出來。這些與伺服器無關。

Web伺服器的簡單實現

 標準C實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.