實現了HTTP和相關的TCP鏈接處理,負責管理Web服務器提供的資源,以及對Web服務器的配置、控制及擴展方面的管理。瀏覽器
- 經過軟件Web服務器:運行在標準的、有網絡功能的的計算機系統上,如:Apache, Nginx, IIS
- Web服務器設備:預先打包好的軟硬件解決方案。
- 嵌入式Web服務器:嵌入到消費類產品(好比打印機)中去的小型Web服務器。
- 創建鏈接。接受一個客戶端鏈接,或者若是不但願與這個客戶端創建鏈接,就將其關閉;
- 接受請求。從網絡中讀取一條HTTP請求報文;
- 處理請求。對請求報文進行解釋,並採起行動;
- 訪問資源。訪問報文中指定的資源;
- 構建響應。建立帶有正確首部的HTTP響應報文;
- 發送響應。將響應回送給客戶端;
- 記錄事務處理過程。將已完成事務有關內容記錄在一個日誌文件中;
- 單線程Web服務器:一次只處理一個請求,直到其完成爲止;
- 多進程及多線程Web服務器:使用多個進程,或高效的線程同時對請求進行處理;
- 複用的I/O服務器:爲了支持大量的鏈接,不少Web服務器都採用了複用結構。在複用結構中,要同時監視全部鏈接上的活動。當鏈接狀態發生改變時,就對那條鏈接進行少許的處理,處理結束以後,將鏈接返回到開放鏈接列表中,等待下一次狀態變化,只有在有事情可作時纔會對鏈接進行處理,在空閒鏈接上等待的時候並不會綁定線程和進程;
- 複用的多線程Web服務器:有些系統會將多線程和複用功能結合在一塊兒,以利用計算機平臺上的多個CPU;
Web服務器是資源服務器,能夠接受對目錄URL的請求,其路徑能夠解析爲一個目錄,而不是文件;服務器
若是用戶請求目錄URL時,沒有提供默認的索引文件,並且Web服務器沒有禁止使用目錄索引,不少WEb服務器都會自動反悔一個HTML文件,此文件中會列出那個目錄中的每一個文件的文件名、文件大小和修改日期,以及URL連接。網絡
Apache 禁止自動生成目錄或索引文件指令: Options -Indexes
多線程
一旦Web服務器識別出了資源,就執行請求方法中描述的動做,並返回響應報文。響應報文中包含有響應 狀態碼
、響應 首部
。若是事務處理產生了響應 主體
,就將內容放在響應報文中回送過去。負載均衡
響應報文中一般包括:spa
- 描述了響應主體MIME類型的
Content-Type
首部;- 描述了響應主體長度的
Content-Length
首部;- 實際報文的主體內容;
Web服務器要負責響應主體的MIME類型,能夠用文件的擴展名說明MIME類型,線程
常見的MIME類型以下:日誌
- audio / mpeg mpeg
- image / png gif
- text / plain txt
Web服務器有時會返回重定向響應而不是成功的報文,能夠將瀏覽器重定向到其它地方來執行請求;code
可用於下列狀況:索引
- 永久刪除的資源;
- 臨時刪除的資源;
- URL加強;
- 負載均衡;
- 服務器關聯;
- 規範目錄名稱;