linux學習42-HTTP服務和APACHE
阿新 • • 發佈:2018-12-16
處理步驟
- DNS解析
- 客戶端發出訪問www.taobao.com請求,先從本地host檔案解析,不能解析,交給本機DNS快取
- 本機沒有解析記錄的話,傳送給本地解析伺服器,本地DNS伺服器查詢快取,是否有記錄可以迴應
- 本地DNS伺服器快取沒有記錄,發往DNS根伺服器開始定址,根伺服器返回一級域名.com
- 本地DNS伺服器拿到一級域名後,訪問一級域DNS伺服器,返回二級域名taobao.com
- 本地DNS伺服器訪問二級域名,得到IP地址www.taobao.com,本地DNS伺服器將全稱域名快取至本地,然後傳送給客戶
- 建立連線
- 使用者向淘寶傳送一個數據包SYN=1,seq=x
- 如果淘寶可以收到,則傳送SYN=1,ACK=1,seq=y,ack=x+1
- 客戶收到淘寶的迴應包,再發送ACK=1,seq=x+1,ack=y+1,淘寶收到後,則建立成功
- web服務請求迴應
-
建立連線 客服向伺服器發起請求,此請求包括一些資料報文的頭部,包括(method:GET、POST/PUT/HEAD/DELECT等)
-
接收請求(可能會拒絕) 接收客戶端請求報文中對某資源的一次請求的過程
-
處理請求 伺服器對請求報文進行解析,並獲取請求的資源及請求方法等相關資訊,根據方法,資源,首部和可選的主體部分對請求進行處理
-
訪問資源 伺服器獲取請求報文中請求的資源web伺服器,即存放了web資源的伺服器,負責向請求者提供對方請求的靜態資源,或動態執行後生成的資源
-
構建響應報文 一旦Web伺服器識別出了資源,就執行請求方法中描述的動作,並返回響應報文。響應報文中 包含有響應狀態碼、響應首部,如果生成了響應主體的話,還包括響應主體
-
傳送響應報文 Web伺服器通過連線傳送資料時也會面臨與接收資料一樣的問題。伺服器可能有很多條到各個客戶端的連線,有些是空閒的,有些在向伺服器傳送資料,還有一些在向客戶端回送響應資料。伺服器要記錄連線的狀態,還要特別注意對持久連線的處理。對非持久連線而言,伺服器應該在傳送了整條報文之後,關閉自己這一端的連線。對持久連線來說,連線可能仍保持開啟狀態,在這種情況下,伺服器要正確地計算Content-Length首部,不然客戶端就無法知道響應什麼時候結束了
-
記錄日誌 最後,當事務結束時,Web伺服器會在日誌檔案中新增一個條目,來描述已執行的事務
-