溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

深度剖析:HTTP協(xié)議

發(fā)布時間:2020-06-09 13:35:38 來源:網(wǎng)絡(luò) 閱讀:706 作者:小生博客 欄目:建站服務(wù)器

   小生博客:http://xsboke.blog.51cto.com

   

  

 

                             -------謝謝您的參考,如有疑問,歡迎交流


目錄

  • 名詞解釋

  • HTTP協(xié)議簡介及其版本

  • HTTP的請求類型

  • HTTP協(xié)議報文

     -------------------------------請求與響應(yīng)報文格式

     -------------------------------請求方法

     -------------------------------HTTP返回狀態(tài)碼

     -------------------------------HTTP首部介紹

     -------------------------------常見的MIME類型

  • 一次web資源請求的具體過程

  • 客戶端(瀏覽器)從服務(wù)器請求數(shù)據(jù)基本步驟

  • HTTP接收多用戶的并發(fā)請求

  • Cookie流程

  • 抓包工具和命令

   -------------------------------Sniffer

     -------------------------------Wireshark

     -------------------------------Curl


 

一、 名詞解釋

   深度剖析:HTTP協(xié)議

二、 HTTP協(xié)議簡介及其版本

   1. HTTP協(xié)議簡介

     HTTPHyper Text Transfer Protocol 超文本傳輸協(xié)議):

     是互聯(lián)網(wǎng)應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,主要用于Web服務(wù)。通過計算機處理文本信息,格式      為HTMLHyper Text Mark Language)超文本標記語言來實現(xiàn)。

   2. HTTP協(xié)議版本

     深度剖析:HTTP協(xié)議

三、 HTTP的請求類型

   1. 靜態(tài)(事先就編輯并定義完成的)

     深度剖析:HTTP協(xié)議

     1) 首先web服務(wù)器向內(nèi)核注冊socket(套接字,監(jiān)聽瀏覽器請求)

     2) 客戶端通過瀏覽器,向web服務(wù)器發(fā)起request請求

     3) Web服務(wù)器收到客戶端的request信息

     4) 如果用戶請求的資源在服務(wù)器本地的話,http服務(wù)會向系統(tǒng)內(nèi)核申請調(diào)用

     5) 內(nèi)核調(diào)用本地磁盤里的數(shù)據(jù),并將數(shù)據(jù)發(fā)給http服務(wù)

     6) http將用戶請求的資源通過response報文,最終響應(yīng)給客戶端

   2. 動態(tài)(通過編程語言編寫的程序,然后輸出html格式)

     深度剖析:HTTP協(xié)議

     動態(tài)與靜態(tài)相似,只不過是中間多了一個調(diào)用后端解釋器的步驟,通過解釋器將

     數(shù)據(jù)生成html格式的文件,然后構(gòu)建成響應(yīng)報文,最終返回客戶端。

四、 HTTP協(xié)議報文

   深度剖析:HTTP協(xié)議

   1. 請求方法

     深度剖析:HTTP協(xié)議

   2. HTTP返回狀態(tài)碼

     深度剖析:HTTP協(xié)議

   3. HTTP首部介紹

     深度剖析:HTTP協(xié)議

   4. 常見的MIME類型

     深度剖析:HTTP協(xié)議

五、 一次web資源請求的具體過程

   深度剖析:HTTP協(xié)議

六、 客戶端(瀏覽器)從服務(wù)器請求數(shù)據(jù)的基本步驟

  深度剖析:HTTP協(xié)議


    1. 用戶發(fā)起一個http請求,緩存獲取到URL,根據(jù)URL查找是否有匹配的副本,這個副本可能在內(nèi)存中,也可能在本地磁盤。 

    2. 如果請求命中本地緩存則從本地緩存中獲取一個對應(yīng)資源的"copy";

    3. 檢查這個"copy"是否過期,否則直接返回,是則繼續(xù)向服務(wù)器轉(zhuǎn)發(fā)請求。 HTTP中,通過Cache-Control首部和Expires首部為文檔指定了過期時間,通過對過期時間的判斷,緩存就可以知道文檔是不是在保質(zhì)期內(nèi)。Expires首部和Cache-Control:max-age首部都是來告訴緩存文檔有沒有過期,為什么需要兩個響應(yīng)首部來做這件簡單的事情了?其實這一切都是歷史原因,Expires首部是HTTP 1.0中提出來的,因為他使用的是絕對日期,如果服務(wù)端和客戶端時鐘不同步的話(實際上這種情況非常常見),緩存可能就會認為文檔已經(jīng)過了保質(zhì)期。

    4. 服務(wù)器接收到請求,然后判斷資源是否變更,是則返回新內(nèi)容,否則返回304:未變更,更新過期時間。

七、HTTP接收多用戶的并發(fā)請求

  1. Apache

     Apache默認的工作模型是阻塞模型,默認一次只接收并且處理一個請求,通過主進程生成

     子進程,然后主進程收到請求時交給子進程進行處理這種方法,實現(xiàn)接收多用戶并發(fā)請求

   2. Nginx

     Nginx默認工作模型為非阻塞模型,通過worker_processes指定工作進程數(shù),默認為1,而

     nginx的一個進程可以處理多個并發(fā)連接請求

八、 Cookie流程


   深度剖析:HTTP協(xié)議



  1. Web客戶端通過瀏覽器向Web服務(wù)器發(fā)送連接請求,通過HTTP報文請求行中的URL打開某一Web頁面。

  2. Web服務(wù)器接收到請求后,根據(jù)用戶端提供的信息產(chǎn)生一個Set-Cookies Header

  3. 將生成的Set-Cookies Header通過Response Header存放在HTTP報文中回傳給Web客戶端,建立一次會話連接。

  4. Web客戶端收到HTTP應(yīng)答報文后,如果要繼續(xù)已建立的這次會話,則將Cookies的內(nèi)容從HTTP報文中取出,形成一個Cookies文本文件儲存在客戶端計算機的硬盤中或保存在客戶端計算機的內(nèi)存中。

  5. 當(dāng)Web客戶端再次向Web服務(wù)器發(fā)送連接請求時,Web瀏覽器首先根據(jù)要訪問站點的URL在本地計算機上尋找對應(yīng)的Cookies文本文件或在本地計算機的內(nèi)存中尋找對應(yīng)的Cookies內(nèi)容。如果找到,則將此Cookies內(nèi)容存放在HTTP請求報文中發(fā)給Web服務(wù)器。

  6. Web服務(wù)器接收到包含Cookies內(nèi)容的HTTP請求后,檢索其Cookies中與用戶有關(guān)的信息,并根據(jù)檢索結(jié)果生成一個客戶端所請求的頁面應(yīng)答傳遞給客戶端。



九、抓包工具和命令


  1. Sniffer

    l  Sniffer,中文可以翻譯為嗅探器,也叫抓數(shù)據(jù)包軟件,是一種基于被動偵聽原理的網(wǎng)絡(luò)分析方式。使用這種技術(shù)方式,可以監(jiān)視網(wǎng)絡(luò)的狀態(tài)、數(shù)據(jù)流動情況以及網(wǎng)絡(luò)上傳輸?shù)男畔ⅰ?/span>

    l  Sniffer程序是一種利用以太網(wǎng)的特性把網(wǎng)絡(luò)適配卡(NIC,一般為以太網(wǎng)卡)置為雜亂(promiscuous)模式狀態(tài)的工具,一旦網(wǎng)卡設(shè)置為這種模式,它就能接收傳輸在網(wǎng)絡(luò)上的每一個信息包。


  2. Wireshark

    l  Wireshark(前稱Ethereal)是一個網(wǎng)絡(luò)封包分析軟件。網(wǎng)絡(luò)封包分析軟件的功能是擷取網(wǎng)絡(luò)封包,并盡可能顯示出最為詳細的網(wǎng)絡(luò)封包資料。Wireshark使用WinPCAP作為接口,直接與網(wǎng)卡進行數(shù)據(jù)報文交換

    l  可以通過wireshark包進行數(shù)據(jù)分析,是一個常用的數(shù)據(jù)包分析工具,可以用于檢測服務(wù)器是否有安全隱患,比如,在響應(yīng)報文中,是否應(yīng)答了server字段,這個字段指定了服務(wù)器使用的程序及其版本,如果被***者知道這些信息后,***者可以根據(jù)程序及其版本的漏洞進行***


  3. Curl

    l  curl是利用URL語法在命令行方式下工作的開源文件傳輸工具。它被廣泛應(yīng)用在Unix、多種Linux發(fā)行版中,并且有DOSWin32Win64下的移植版本。

    l  curl命令是一個利用URL規(guī)則在命令行下工作的文件傳輸工具。它支持文件的上傳和下載,所以是綜合傳輸工具,但按傳統(tǒng),習(xí)慣稱curl為下載工具。

    l  作為一款強力工具,curl支持包括HTTPHTTPS、ftp等眾多協(xié)議,還支持POST、cookies、認證、從指定偏移處下載部分文件、用戶代理字符串、限速、文件大小、進度條等特征。


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI