http權威指南 - 5.web服務器

實現了HTTP和相關的TCP鏈接處理,負責管理Web服務器提供的資源,以及對Web服務器的配置、控制及擴展方面的管理。瀏覽器

各類不一樣的形式:

  1. 經過軟件Web服務器:運行在標準的、有網絡功能的的計算機系統上,如:Apache, Nginx, IIS
  2. Web服務器設備:預先打包好的軟硬件解決方案。
  3. 嵌入式Web服務器:嵌入到消費類產品(好比打印機)中去的小型Web服務器。

Web服務器會作哪些工做:

  1. 創建鏈接。接受一個客戶端鏈接,或者若是不但願與這個客戶端創建鏈接,就將其關閉;
  2. 接受請求。從網絡中讀取一條HTTP請求報文;
  3. 處理請求。對請求報文進行解釋,並採起行動;
  4. 訪問資源。訪問報文中指定的資源;
  5. 構建響應。建立帶有正確首部的HTTP響應報文;
  6. 發送響應。將響應回送給客戶端;
  7. 記錄事務處理過程。將已完成事務有關內容記錄在一個日誌文件中;

不一樣的Web服務器結構會以不一樣的方式爲請求服務:

  1. 單線程Web服務器:一次只處理一個請求,直到其完成爲止;
  2. 多進程及多線程Web服務器:使用多個進程,或高效的線程同時對請求進行處理;
  3. 複用的I/O服務器:爲了支持大量的鏈接,不少Web服務器都採用了複用結構。在複用結構中,要同時監視全部鏈接上的活動。當鏈接狀態發生改變時,就對那條鏈接進行少許的處理,處理結束以後,將鏈接返回到開放鏈接列表中,等待下一次狀態變化,只有在有事情可作時纔會對鏈接進行處理,在空閒鏈接上等待的時候並不會綁定線程和進程;
  4. 複用的多線程Web服務器:有些系統會將多線程和複用功能結合在一塊兒,以利用計算機平臺上的多個CPU;

Web服務器對資源的映射及訪問:

Web服務器是資源服務器,能夠接受對目錄URL的請求,其路徑能夠解析爲一個目錄,而不是文件;服務器

若是用戶請求目錄URL時,沒有提供默認的索引文件,並且Web服務器沒有禁止使用目錄索引,不少WEb服務器都會自動反悔一個HTML文件,此文件中會列出那個目錄中的每一個文件的文件名、文件大小和修改日期,以及URL連接。網絡

Apache 禁止自動生成目錄或索引文件指令: Options -Indexes多線程

構建響應:

一旦Web服務器識別出了資源,就執行請求方法中描述的動做,並返回響應報文。響應報文中包含有響應 狀態碼、響應 首部。若是事務處理產生了響應 主體,就將內容放在響應報文中回送過去。負載均衡

響應報文中一般包括:spa

  1. 描述了響應主體MIME類型的 Content-Type 首部;
  2. 描述了響應主體長度的 Content-Length 首部;
  3. 實際報文的主體內容;

Web服務器要負責響應主體的MIME類型,能夠用文件的擴展名說明MIME類型,線程

常見的MIME類型以下:日誌

  1. audio / mpeg mpeg
  2. image / png gif
  3. text / plain txt

重定向:

Web服務器有時會返回重定向響應而不是成功的報文,能夠將瀏覽器重定向到其它地方來執行請求;code

可用於下列狀況:索引

  1. 永久刪除的資源;
  2. 臨時刪除的資源;
  3. URL加強;
  4. 負載均衡;
  5. 服務器關聯;
  6. 規範目錄名稱;
相關文章
相關標籤/搜索