面試一年多,每當我問起面試者對HTTP的瞭解時,個個回答令我瞠目結舌,這些開發者都有3-5年的經驗。請不要讓我叫你野生程序員,是時候瞭解HTTP了,讓咱們當個正規軍。前端
原由程序員
面試官:請問你瞭解HTTP協議嗎?面試
前端開發:這不是應該後端清楚的嗎?後端
後端開發:這不是前端知道的嗎?瀏覽器
面試官:……網絡
咱們先一本正經的來了解下HTTP(不包含傳輸層TCP),而後總結其中的精華回覆面試官。app
HTTP協議簡介編碼
HTTP(超文本傳輸協議)是應用層上的一種客戶端/服務端模型的通訊協議,它由請求和響應構成,且是無狀態的。(暫不介紹HTTP2)3d
協議規定了通訊雙方必須遵循的數據傳輸格式,這樣通訊雙方按照約定的格式才能準確的通訊。blog
無狀態
無狀態是指兩次鏈接通訊之間是沒有任何關係的,每次都是一個新的鏈接,服務端不會記錄先後的請求信息。
客戶端/服務端模型
五層網絡模型
URL構成
用了這麼久,你注意過嗎?
協議內容
請求(Request)
客戶端發送一個HTTP請求到服務端的格式:
請求行
請求頭
請求體
響應(Response)
服務端響應客戶端格式:
狀態行
響應頭
響應體
狀態碼
HTTP狀態碼由三個十進制數字組成,第一個十進制數字定義了狀態碼的類型,後兩個數字沒有分類的做用。HTTP狀態碼共分爲5種類型:
更詳細的狀態碼可查看 HTTP狀態碼
但通常咱們只須要知道幾個常見的就行,好比 200,400,401,403,404,500,502.
請求方法
截止到HTTP1.1共有下面幾種方法:
請求和響應常見通用頭
注意
Content-Type,內容類型,通常是指網頁中存在的Content-Type,用於定義網絡文件的類型和網頁的編碼,決定瀏覽器將以什麼形式、什麼編碼讀取這個文件。
常見的媒體格式類型以下:
以application開頭的媒體格式類型:
常見請求頭
常見響應頭
總結
清楚的知道這些內容,不單單是爲了應對面試官,而是能實實在在的提升本身的效率,這一點在先後端聯調接口最明顯,當你在應用中去請求其餘接口或轉發請求時這些也是要知道的。否則出現問題的機率會大大提升。