Web服務器工作流程
- 建立連接——接受一個客戶端連接,或者如果不希望與這個客戶端建立連接,就將其關閉
- 接收請求——從網絡中讀取一條HTTP請求報文
- 處理請求——對請求報文進行解釋,並採取行動
- 訪問資源——訪問報文中指定的資源
- 構建響應——創建帶有正確首部的HTTP響應報文
- 發送響應——將響應回送給客戶端
- 記錄事務處理過程——將與已完成事務有關的內容記錄在一個日誌文件中
1.建立連接
Web服務器可以隨意拒絕或立即關閉任意一條連接。有些Web服務器會因爲客戶端IP地址或主機名是未認證的,或者因爲它是已知的惡意客戶端而關閉連接。
2.接收請求
Web服務器集中幾種請求服務的方式:
- 單線程Web服務器
- 多進程及多線程Web服務器
- 複用I/O的服務器
- 複用的多線程Web服務器
5.構建響應
重定向:
Web服務器有時會返回重定向響應而不是成功的報文。Web服務器可以將瀏覽器重定向到其他地方來執行請求。重定向響應由返回碼3XX說明。Location響應首部包含了內容的新地址或優選地址的URL。重定向適用的情況。
- 永久搬離的資源(301)
- 臨時搬離的資源(303和307)
- URL增強
- 負載均衡
- 服務器關聯
- 規範目錄名稱
服務器關聯
Web服務器上可能會有某些用戶的本地信息;服務器可以將客戶端重定向到包含了那個客戶端信息的服務器上去。(303和307)
規範目錄名稱
客戶端請求的URI是一個不帶尾部斜線的目錄名時,大多數Web服務器都會將客戶端重定向到一個加了斜線的URI上,這樣相對連接就可以正常工作了。(303和307)
有時會將這些經過擴展和狀態增強的URL稱爲“胖URL”。