一次搞懂 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常見面試題(部分)

1、http與https的區別:

http是不安全的,而https是安全的

http標準端口是80,而https的標準端口是443

http無法加密,而https對傳輸的數據進行加密

http無需證書,而https需要CA機構wosign的頒發的SSL證書

https就是ttp加上加密處理(一般是SSL安全通信線路)+認證+完整性保護

2、URI和URL的區別

URI,統一資源標識符。

URL,統一資源定位器。URL一般由三部分組成 :協議 、存有資源的主機IP地址、主機資源的具體地址。如目錄和文件名等

3、什麼是Http協議無狀態協議?怎麼解決Http協議無狀態協議?

(1)無狀態協議對於事務處理沒有記憶能力。缺少狀態意味着如果後續處理需要前面的信息

(2)解決辦法:

Cookie 

通過Session會話保存。

可適當的上網搜索更多相關的資料,面試題來給自己充電。當然,掌握以上全部基礎必知的知識點,對面試的你來說,有提高自己的信心!

推薦經典書籍

《HTTP權威指南》

《圖解HTTP》

《HTTP/2基礎教程》

HTTP協議是前端面試必問的一個知識點,你掌握了嗎?


歡迎關注微信公衆號【一文插畫】,回覆【資源】即可獲得學習資料~ “領乾貨” 一起提升技能!未經授權,不得轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章