1.需求
了解服務端如何處理http請求,了解基本的處理流程
2.實戰
處理http請求分為7個步驟
2.1 Tcp連接
建立一條tcp鏈接,(若之前不存在持久鏈接keep-alive),把客戶端的ip和port,服務端的ip和port數據放到web服務器連接表中。服務器隨時監聽鏈接表中的鏈接,看有沒有數據變化
2.2 接收http請求
一旦我們發送http請求了,這條tcp鏈接就開始工作了。因為web服務器鏈接表中有許多鏈接需要被處理,處理的方式有單線程,多線程這些(這些涉及操作系統的知識)。
2.3 處理http請求
處理的過程大致是把請求的信息解析出來,如下圖
2.4 訪問資源
訪問資源可以是訪問靜態資源,這個就直接根據url地址去服務器里找就好了。
訪問動態資源的話要經過一個叫cgi的東西,再用服務端腳本處理,再返回給前端。如下圖所示
2.5 構建響應
要是找到資源,則構建響應信息,包括響應的對象類型,長度,狀態碼。
另一個情況是重定向響應,就是直接返回一個重定向,客戶端看到之后,立刻再向重定向的地址發起請求。重定向的響應的狀態碼一般是3xx。
2.6 發送響應
把構建的響應發送給客戶端
2.7 記錄日志
服務端對這個請求響應過程進行記錄。(另外專門再講)
3.總結
以上是服務端處理http請求的大致過程。能讓大家有個大致輪廓,當然里面有很多細節的知識沒講到,要另外查詢資料並學習。
參考資料:http權威指南
https://www.cnblogs.com/norm/p/6189596.html