關於HTTP協議你應該知道這些
阿新 • • 發佈:2018-12-12
概念
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請求的次數,因而提高了頁面效能。