前端面試9:HTTP

明易發表於2018-12-05

課程思維導圖

HTTP.png

Q:HTTP的主要特點是什麼?

無連線、無狀態

Q:介紹下HTTP報文的組成部分?

  1. 請求報文:請求行、請求頭、空行、請求體
  2. 響應報文:狀態行、響應頭、空行、響應體

以請求報文為例:

  1. 請求行:HTTP方法、頁面地址、HTTP協議及版本
  2. 請求頭:key-value值,告訴服務端需要的內容
  3. 空行:告知服務端以下內容為請求體
  4. 請求體:資料部分

Q:常見的HTTP方法有哪些?

  1. GET:獲取資源
  2. POST:傳輸資源
  3. PUT:更新資源
  4. DELETE:刪除資源
  5. HEAD:獲得報文首部

Q:POST和GET的區別是什麼?

  1. GET在瀏覽器回退時是無害的,而POST會再次提交請求
  2. GET請求會被瀏覽器主動快取,而POST不會,除非手動設定
  3. GET請求引數會被完整保留在瀏覽器的歷史記錄裡,而POST中的引數不會被保留
  4. GET請求在URL中傳遞的引數是有長度限制的,POST沒有限制
  5. POST比GET安全,因引數暴露在URL上
  6. GET引數通過URL傳遞,POST放在Request body 中

Q:狀態碼錶示的含義是?

  1. 1XX:指示資訊:請求已接收,繼續處理
  2. 2XX:成功,請求已被成功接收
  3. 3XX:重定向,完成請求需要進一步的操作
  4. 4XX:客戶端錯誤,請求有語法錯誤或請求無法實現
  5. 5XX:伺服器錯誤:服務端未能實現合法的請求

Q:常見狀態碼有哪些?

  1. 200:OK,客戶端請求成功
  2. 206:Partial Content:客戶端傳送一個帶有Range頭的GET請求,伺服器完成了他
  3. 301:Moved Permanently:所請求的頁面已轉移至新的URL
  4. 302:Found:所請求的頁面已經臨時轉移到新的URL
  5. 304:Not Modified:客戶端有快取的文件,併發出一個條件性的請求,伺服器告訴客戶端,原來的快取的文件可以繼續使用
  6. 400:Bad Request:客戶端請求有語法錯誤,不能被伺服器所理解
  7. 401:Unauthorized:請求未經授權,必須與WWW-Authenticate報頭域一起使用
  8. 403:Forbidden:對被請求頁面的訪問被禁止
  9. 404:Not Found:請求資源不存在
  10. 500:Internal Server Error:伺服器發生不可預期的錯誤
  11. 503:Server Unavailable:請求未完成,伺服器臨時過載或當機

Q:介紹下持久連結(HTTP1.1)?

  1. HTTP協議採用“請求-應答”模式,當使用普通模式,即非keep-Alive模式時,每個請求/應答客戶和伺服器都要新一個連線,完成之後立即斷開連線。
  2. 當使用keep-Alive模式(持久連結)時,keep-Alive功能使客戶端到伺服器端的連線持久有效,當出現伺服器的後繼請求時,keep-Alive避免重新建立連線

Q:管線化是什麼?

在使用持久連線的情況下,常規的訊息傳遞是類似於:請求1 => 響應1 => 請求2 => 響應2 => 請求3 => 響應3,而管線化的訊息傳遞是類似於請求1 => 請求2 => 請求3 => 響應1 => 響應2 => 響應3

Q:管線化的特點是什麼?

  1. 通道持久建立,請求打包後,一起送過去,響應也是,打包後送回來
  2. 管線化機制通過持久連線完成,僅HTTP1.1支援
  3. 只有GET、HEAD請求可以進行管線化,而POST有所限制
  4. 初次建立連線時不應開啟管線化機制,因對方伺服器不一定支援HTTP1.1

相關文章