1、http請求流程
1.連接 當我們輸入這樣一個請求時,首先要建立一個socket連接,因為socket是通過ip和端口建立的,所以之前還有一個DNS解析過程,把www.mycompany.com變成ip,如果url里不包含端口號,則會使用該協議的默認端口號。
DNS的過程是這樣的:首先我們知道我們本地的機器上在配置網絡時都會填寫DNS,這樣本機就會把這個url發給這個配置的DNS服務器,如果能夠找到相應的url則返回其ip,否則該DNS將繼續將該解析請求發送給上級DNS,整個DNS可以看做是一個樹狀結構,該請求將一直發送到根直到得到結果?,F在已經擁有了目標ip和端口號,這樣我們就可以打開socket連接了。
2.請求 連接成功建立后,開始向web服務器發送請求,這個請求一般是GET或POST命令(POST用于FORM參數的傳遞)。GET命令的格式為: GET 路徑/文件名 HTTP/1.0
文件名指出所訪問的文件,HTTP/1.0指出Web瀏覽器使用的HTTP版本?,F在可以發送GET命令:
GET /mydir/index.html HTTP/1.0,
3.應答 web服務器收到這個請求,進行處理。從它的文檔空間中搜索子目錄mydir的文件index.html。如果找到該文件,Web服務器把該文件內容傳送給相應的Web瀏覽器。
為了告知瀏覽器,,Web服務器首先傳送一些HTTP頭信息,然后傳送具體內容(即HTTP體信息),HTTP頭信息和HTTP體信息之間用一個空行分開。
常用的HTTP頭信息有:
① HTTP 1.0 200 OK 這是Web服務器應答的第一行,列出服務器正在運行的HTTP版本號和應答代碼。代碼"200 OK"表示請求完成。
?、?MIME_Version:1.0 它指示MIME類型的版本。
?、?content_type:類型 這個頭信息非常重要,它指示HTTP體信息的MIME類型。如:content_type:text/html指示傳送的數據是HTML文檔。
?、?content_length:長度值 它指示HTTP體信息的長度(字節)。
4.關閉連接:當應答結束后,Web瀏覽器與Web服務器必須斷開,以保證其它Web瀏覽器能夠與Web服務器建立連接。
2、http工作模型
httpd工作模式中的prefork、worker、event優缺點:
http服務,需要客戶端和服務器端建立連接,httpd有三種工作模式:prefork worker event
優點:在資源夠用的情況下服務穩定
worker:這個就是改進之前的工作模型,就是讓一個進程處理多個響應.
event:這樣模型就是讓一個進程產生多個線程,讓每個線程處理處理客戶端請求,并且每個線程可以處理多個線程
查看MPM,可以使用httpd -l命令來查看當前加載的MPM模塊
原創文章,作者:N24_xingxiu,如若轉載,請注明出處:http://www.www58058.com/68303