Web伺服器原理及簡單實現

2022-02-18 08:43:56 字數 2182 閱讀 2582

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

web伺服器的簡單實現

web伺服器 簡單web伺服器實現

三次握手 一般情況下是瀏覽器先傳送請求資料,c s ack 應答 三次握手成功後,才開始進行通訊資料的收發。四次揮手 一般情況下是客戶端先關閉,給瀏覽器傳送關閉資訊。如果瀏覽器傳送了關閉資訊,但是伺服器沒有回過去,較慢 那麼瀏覽器一直發是不是就會有問題?所以會等待 2msl的時間。一般為2 5分鐘。...

簡單實現web伺服器

import multiprocessing import socket import re class webservice object def init self 建立套接字 self.socket server socket.socket socket.af inet,socket.sock...

web伺服器原理

一 概述 web伺服器概念較為廣泛,我們最常說的web伺服器指的是 伺服器,它是建立在internet之上並且駐留在某種計算機上的程式。web伺服器可以向web客戶端 如瀏覽器 提供文件或其他服務,只要是遵循http協議而設計的網路應用程式都可以是web客戶端。二 web伺服器工作原理 假設把瀏覽器...