課程思維導圖
Q:HTTP的主要特點是什麼?
無連線、無狀態
Q:介紹下HTTP報文的組成部分?
- 請求報文:請求行、請求頭、空行、請求體
- 響應報文:狀態行、響應頭、空行、響應體
以請求報文為例:
- 請求行:HTTP方法、頁面地址、HTTP協議及版本
- 請求頭:key-value值,告訴服務端需要的內容
- 空行:告知服務端以下內容為請求體
- 請求體:資料部分
Q:常見的HTTP方法有哪些?
- GET:獲取資源
- POST:傳輸資源
- PUT:更新資源
- DELETE:刪除資源
- HEAD:獲得報文首部
Q:POST和GET的區別是什麼?
- GET在瀏覽器回退時是無害的,而POST會再次提交請求
- GET請求會被瀏覽器主動快取,而POST不會,除非手動設定
- GET請求引數會被完整保留在瀏覽器的歷史記錄裡,而POST中的引數不會被保留
- GET請求在URL中傳遞的引數是有長度限制的,POST沒有限制
- POST比GET安全,因引數暴露在URL上
- GET引數通過URL傳遞,POST放在Request body 中
Q:狀態碼錶示的含義是?
- 1XX:指示資訊:請求已接收,繼續處理
- 2XX:成功,請求已被成功接收
- 3XX:重定向,完成請求需要進一步的操作
- 4XX:客戶端錯誤,請求有語法錯誤或請求無法實現
- 5XX:伺服器錯誤:服務端未能實現合法的請求
Q:常見狀態碼有哪些?
- 200:OK,客戶端請求成功
- 206:Partial Content:客戶端傳送一個帶有Range頭的GET請求,伺服器完成了他
- 301:Moved Permanently:所請求的頁面已轉移至新的URL
- 302:Found:所請求的頁面已經臨時轉移到新的URL
- 304:Not Modified:客戶端有快取的文件,併發出一個條件性的請求,伺服器告訴客戶端,原來的快取的文件可以繼續使用
- 400:Bad Request:客戶端請求有語法錯誤,不能被伺服器所理解
- 401:Unauthorized:請求未經授權,必須與WWW-Authenticate報頭域一起使用
- 403:Forbidden:對被請求頁面的訪問被禁止
- 404:Not Found:請求資源不存在
- 500:Internal Server Error:伺服器發生不可預期的錯誤
- 503:Server Unavailable:請求未完成,伺服器臨時過載或當機
Q:介紹下持久連結(HTTP1.1)?
- HTTP協議採用“請求-應答”模式,當使用普通模式,即非keep-Alive模式時,每個請求/應答客戶和伺服器都要新一個連線,完成之後立即斷開連線。
- 當使用keep-Alive模式(持久連結)時,keep-Alive功能使客戶端到伺服器端的連線持久有效,當出現伺服器的後繼請求時,keep-Alive避免重新建立連線
Q:管線化是什麼?
在使用持久連線的情況下,常規的訊息傳遞是類似於:請求1 => 響應1 => 請求2 => 響應2 => 請求3 => 響應3,而管線化的訊息傳遞是類似於請求1 => 請求2 => 請求3 => 響應1 => 響應2 => 響應3
Q:管線化的特點是什麼?
- 通道持久建立,請求打包後,一起送過去,響應也是,打包後送回來
- 管線化機制通過持久連線完成,僅HTTP1.1支援
- 只有GET、HEAD請求可以進行管線化,而POST有所限制
- 初次建立連線時不應開啟管線化機制,因對方伺服器不一定支援HTTP1.1