一次搞懂 HTTP 協議!
前端面試必考:http協議!
那什麼是http協議呢?今天一起來學習掌握,一大波乾貨來襲!
當我們打開谷歌開發控制台時,可以通過Network面板查看某一請求的請求頭和響應頭還有響應內容,這些特別是在查看Ajax請求的時候,非常有幫助。可以看到HTTP請求頭、HTTP響應頭、HTTP返回的內容等信息,對於開發、調試,都是很有用的。
什麼是HTTP?
HTTP 全稱:超文本傳輸協議
HTTP 負責 web 伺服器與 web 瀏覽器之間的通信。
HTTP 用於從 web 客戶端(瀏覽器)向 web 伺服器發送請求,並從 web 伺服器向 web 客戶端返回內容(網頁)。
HTTP工作原理(流程)
一次HTTP操作稱為一個事務,其工作過程可分為四步:
1、首先客戶機與伺服器需要建立連接。只要單擊某個超級鏈接,HTTP的工作開始。
2、建立連接後,客戶機發送一個請求給伺服器,請求方式的格式為:統一資源標識符(URL)、協議版本號,後邊是MIME信息包括請求修飾符、客戶機信息和可能的內容。
3、伺服器接到請求後,給予相應的響應信息,其格式為一個狀態行,包括信息的協議版本號、一個成功或錯誤的代碼,後邊是MIME信息包括伺服器信息、實體信息和可能的內容。
4、客戶端接收伺服器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然後客戶機與伺服器斷開連接
簡單記憶:
建立TCP連接
瀏覽器向伺服器發送請求
伺服器發送應答頭,向瀏覽器發送數據
伺服器關閉TCP連接
需要注意的事項:
http不是持續性連接:每次只限一個請求,請求-應答-斷開。可以節省傳輸時間。
http是無狀態的:是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在伺服器不需要先前信息時它的應答就較快。
HTTP協議有哪些特徵
支持客戶/伺服器模式
簡單快速
靈活
無連接
無狀態
HTTP和TCP之間的關係
TCP/IP參考模型,如下圖:
HTTP狀態碼(status code)
狀態碼:每條HTTP響應報文返回時都會攜帶一個狀態碼,用於告知客戶端請求是否成功或者是否需要執行其他動作。狀態碼由三位數字組成。
http中status-code的第一個數字定義響應的類別
響應類:
1XX:信息響應類;表示接受到請求並且繼續處理
2XX:處理成功響應類;表示動作被成功接收、理解和接受
3XX:重定向響應類:請求必須進一步處理。
錯誤類:
4XX:客戶端錯誤;客戶端請求有語法錯誤或請求不能正確執行
5XX:服務端錯誤;服務端不能正確執行一個正確的請求
常見的狀態代碼
200:客戶端請求ok
304:自從上次請求後,請求的網頁未修改過
403:禁止訪問
404:伺服器找不到請求的網頁
500:伺服器遇到錯誤,無法完成請求
502:伺服器作為網關或代理,從上游伺服器收到無效響應
HTTP方法有哪些?
GET:通過請求URI得到資源。一般用於獲取/查詢資源信息。
POST:用於向伺服器提交新的內容。一般用於更新資源信息。
PUT:傳輸文件,報文主體中包含文件內容,保存到對應URI位置。
HEAD: 獲得報文首部,與GET方法類似,只是不返回報文主體,一般用於驗證URI是否有效。
DELETE:刪除文件,與PUT方法相反,刪除對應URI位置的文件。
OPTIONS:查詢相應URI支持的HTTP方法。
HTTP常見面試題(部分)
http與https的區別:
http是不安全的,而https是安全的
http標準埠是80,而https的標準埠是443
http無法加密,而https對傳輸的數據進行加密
http無需證書,而https需要CA機構wosign的頒發的SSL證書
https就是ttp加上加密處理(一般是SSL安全通信線路)+認證+完整性保護
URI和URL的區別
URI,統一資源標識符。
URL,統一資源定位器。URL一般由三部分組成
協議
存有資源的主機IP地址
主機資源的具體地址。如目錄和文件名等
什麼是Http協議無狀態協議?怎麼解決Http協議無狀態協議?
(1)無狀態協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息
(2)解決辦法:
Cookie
通過Session會話保存。
可適當的上網搜索更多相關的資料,面試題來給自己充電。當然,掌握以上全部基礎必知的知識點,對面試的你來說,有提高自己的信心!
推薦經典書籍
《HTTP權威指南》
《HTTP權威指南》
《HTTP/2基礎教程》
HTTP協議是前端面試必問的一個知識點,你掌握了嗎?
往期好文
大家想要什麼資源/教程,或者學習上遇到問題都可以留言給小編哦~看到會及時給大家回復~
關注【前端體系】,一起提升技能!
關注,是對作者最大的支持~
TAG:前端體系 |