1. 程式人生 > >關於HTTP協議你應該知道這些

關於HTTP協議你應該知道這些

概念

HTTP協議(HyperText Transfer Protocol, 超文字傳輸協議)是因特網上應用最為廣泛的一種網路協議,所有的www檔案都必須遵循這個標準。
HTTP基於TCP/IP通訊協議來傳遞資料(包括:HTML,檔案,圖片,查詢結果等)。

協議的主要特點

  • 無連線:無連線的含義是限制每次連線只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸事件。
  • 媒體獨立:這意味著,只要客戶端和伺服器知道如何處理資料內容,任何型別的資料都可以通過HTTP傳送。客戶端和伺服器指定使用適合的MIME-Type內容型別。
  • 無狀態:無狀態是指協議對於事務處理沒有記憶能力,缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,由此可能導致每次連線傳輸的資料量增大。另一方面,在伺服器不需要先前的資訊時,它的應答就比較快。

HTTP報文的組成部分

  • 請求報文:請求行,請求頭,空行,請求體
  • 響應報文:響應行,響應頭,空行,響應體

HTTP方法

  • GET:獲取資源
  • POST:傳輸資源
  • PUT:更新資源
  • DELETE:刪除資源
  • HEAD:獲取報文首部

POST方法與GET方法的區別

  • GET在瀏覽器回退時是無害的,而POST會再次提交請求
  • GET請求會被瀏覽器主動快取,而POST不會,除非手動設定
  • GET請求引數通過URL傳遞,POST的引數放在請求體中
  • GET請求在URL中傳送的引數是有長度限制的,而POST沒有限制
  • GET請求的引數會被完整的保留在瀏覽器的歷史紀錄中,而POST引數不會保留

HTTP狀態碼

  • 1xx: 伺服器收到請求
  • 2xx:請求被成功接受並處理
  • 3xx:資源重定向
  • 4xx:客戶端錯誤
  • 5xx:服務端錯誤
  • 200:請求成功
  • 301:資源被永久地轉移到其它URL
  • 404:請求的資源不存在
  • 500:伺服器內部錯誤

持久化連線技術

  • keep-alive(HTTP/1.1版本開始支援)

管線化技術

  • 需要持久化連線的支援,本質是對請求進行打包傳送,收到的響應順序不受影響,由於減少了HTTP請求的次數,因而提高了頁面效能。