前端開發緊密相關的HTTP協議知識

前端工程師打交道最多的就是瀏覽器,無論作什麼都離不開瀏覽器,其中HTTP協議每每會被咱們忽略,但其實資源緩存、CDN加載、頁面性能優化等等都離不開對HTTP協議的瞭解。php

HTTP也叫做超文本傳輸協議,全稱:Hyper Transfer Protocol。最初HTTP只能傳輸HTML文件,慢慢的如今能夠傳輸文字、圖像、視頻和各類流文件。前端

HTTP是無狀態的:

同一個客戶端,連續發起屢次請求,對HTTP服務器來講,都是新的請求,HTTP沒辦法知道來自一個客戶端。java

HTTP消息結構:

要看具體消息結構須要用抓包工具,因此這邊只有簡單介紹,沒有具體實例。Request和response的消息結構基本同樣。面試

Header:

分爲request/response line和request/response header。segmentfault

request/response line:

包括請求的方法Method(GET/POST)、請求資源的路徑path to resource和http協議的版本號。瀏覽器

request/response header:

這邊就是各類請求頭了。緩存

Body:

響應體,通常是HTML文件。若是是get請求,是沒有響應體的。安全

HTTP請求方法:

GET 請求獲取Request-URI所標識的資源
POST 在Request-URI所標識的資源後附加新的數據
HEAD 請求獲取由Request-URI所標識的資源的響應消息報頭
PUT 請求服務器存儲一個資源,並用Request-URI做爲其標識
DELETE 請求服務器刪除Request-URI所標識的資源
TRACE 請求服務器回送收到的請求信息,主要用於測試或診斷
CONNECT 保留未來使用
OPTIONS 請求查詢服務器的性能,或者查詢與資源相關的選項和需求性能優化

對於咱們來講,經常使用的就是GET、和POST。再次聲明,不用表單提交,get不存在跟post比較有安全性問題。服務器

HTTP狀態碼:

1XX 提示信息 - 表示請求已被成功接收,繼續處理。
2XX 成功 - 表示請求已被成功接收,理解,接受
3XX 重定向 - 要完成請求必須進行更進一步的處理
4XX 客戶端錯誤 - 請求有語法錯誤或請求沒法實現
5XX 服務器端錯誤 - 服務器未能實現合法的請求

狀態碼不少,能夠自行了解,我以爲有幾個是必須知道的。

HTTP通訊過程:

根據URL查詢DNS、查找服務器、創建TCP鏈接、發送請求、服務器響應。

對於HTTP,我以爲基礎的要知道HTTP是無狀態的、HTTP的消息結構、基本請求方法、基本狀態碼這四部分。

HTTP協議須要學習的還不少不少,這只是基本須要知道的。

歡迎關注 @三人行慕課 微博

原創不易,點個讚唄?,支持支持

相關推薦:

蹭B站源碼泄露的熱點來聊聊B站有趣的源碼片斷
跨平臺技術Flutter的將來
java中內部接口與外部接口的區別
點擊驗證碼,更換驗證碼的value值
php工程師面試須要注意哪些方面?

閱讀原文

相關文章
相關標籤/搜索