網絡安全之HTTP協議

HTTP協議

學習HTTP協議過程中的心得體會以及知識點的整理,方便我自己查找,也希望可以和大家一起交流。

一. 簡介(不重要)

超文本傳輸協議(英文:HyperText Transfer Protocol,縮寫:HTTP)是一種用於分佈式、協作式和超媒體信息系統的應用層協議。HTTP是萬維網的數據通信的基礎。

HTTP的發展是由蒂姆·伯納斯-李於1989年在歐洲核子研究組織(CERN)所發起。HTTP的標準制定由萬維網協會(World Wide Web Consortium,W3C)和互聯網工程任務組(Internet Engineering Task Force,IETF)進行協調,最終發佈了一系列的RFC,其中最著名的是1999年6月公佈的 RFC 2616,定義了HTTP協議中現今廣泛使用的一個版本——HTTP 1.1。

2014年12月,互聯網工程任務組(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小組將HTTP/2標準提議遞交至IESG進行討論,於2015年2月17日被批准。 HTTP/2標準於2015年5月以RFC 7540正式發表,取代HTTP 1.1成爲HTTP的實現標準。

二. 工作原理

HTTP協議定義Web客戶端如何從Web服務器請求Web頁面,以及服務器如何把Web頁面傳送給客戶端。HTTP協議採用了請求/響應模型。

客戶端向服務器發送一個請求報文,請求報文包含請求的方法URL協議版本請求頭部請求數據

服務器以一個狀態行作爲響應,響應的內容包括協議的版本成功或者錯誤代碼服務器信息響應頭部響應數據

以下是 HTTP 請求/響應的步驟:

  1. 客戶端連接到Web服務器
    一個HTTP客戶端,通常是瀏覽器,與Web服務器的HTTP端口(默認爲80)建立一個TCP套接字連接。例如,http://www.baidu.com。

  2. 發送HTTP請求
    通過TCP套接字,客戶端向Web服務器發送一個文本的請求報文,一個請求報文由請求行請求頭部空行請求數據4部分組成。

  3. 服務器接受請求並返回HTTP響應
    Web服務器解析請求,定位請求資源。服務器將資源複本寫到TCP套接字,由客戶端讀取。一個響應由狀態行響應頭部空行響應數據4部分組成。

  4. 釋放連接TCP連接
    若connection模式爲close,則服務器主動關閉TCP連接,客戶端被動關閉連接,釋放TCP連接;
    若connection模式爲keepalive,則該連接會保持一段時間,在該時間內可以繼續接收請求

  5. 客戶端瀏覽器解析HTML內容
    客戶端瀏覽器首先解析狀態行,查看錶明請求是否成功的狀態代碼。然後解析每一個響應頭,響應頭告知以下爲若干字節的HTML文檔和文檔的字符集。客戶端瀏覽器讀取響應數據HTML,根據HTML的語法對其進行格式化,並在瀏覽器窗口中顯示。

三. 請求方法

  1. GET

    請求指定的頁面信息,並返回實體主體

  2. POST

    向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的建立或已有資源的修改,或二者皆有。

  3. HEAD

    類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭。它的好處在於,使用這個方法可以在不必傳輸全部內容的情況下,就可以獲取其中元信息或稱元數據。

  4. OPTIONS

    使服務器傳回該資源所支持的所有HTTP請求方法。用’*'來代替資源名稱,向Web服務器發送OPTIONS請求,可以測試服務器功能是否正常運作。

  5. PUT

    向指定資源位置上傳其最新內容。

  6. DELETE

    請求服務器刪除Request-URI所標識的資源。

  7. TRACE

    回顯服務器收到的請求,主要用於測試或診斷。

  8. CONNEXT

    HTTP/1.1協議中預留給能夠將連接改爲管道方式的代理服務器。通常用於SSL加密服務器的鏈接(經由非加密的HTTP代理服務器)。

上述請求方法中第4—8種是HTTP1.1新增的五種請求方法。

四. 狀態碼

所有HTTP響應的第一行都是狀態行,依次是當前HTTP版本號,3位數字組成的狀態代碼,以及描述狀態的短語,彼此由空格分隔。

狀態代碼的第一個數字代表當前響應的類型:

  • 1xx消息——請求已被服務器接收,繼續處理
  • 2xx成功——請求已成功被服務器接收、理解、並接受
  • 3xx重定向——需要後續操作才能完成這一請求
  • 4xx請求錯誤——請求含有詞法錯誤或者無法被執行
  • 5xx服務器錯誤——服務器在處理某個正確請求時發生錯誤

※具體狀態碼點擊鏈接查看。

HTTP協議

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章