前端面試9:HTTP

這裏有一份簡潔的前端知識體系等待你查收,看看吧,會有驚喜哦~若是以爲不錯,懇求star哈~前端


課程思惟導圖

HTTP.png

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

無鏈接、無狀態git

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

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

以請求報文爲例:github

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

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

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

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

能夠從GET的優點跟劣勢去記憶。瀏覽器

優點:緩存

  • GET在瀏覽器回退時是無害的,而POST會再次提交請求
  • GET請求會被瀏覽器主動緩存,而POST不會,除非手動設置

劣勢:安全

  • GET 不安全,參數暴露在URL上,而且會完整保留在瀏覽器的歷史記錄裏
  • GET請求在URL中傳遞的參數是有長度限制的,POST沒有限制

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
相關文章
相關標籤/搜索