您好,登錄后才能下訂單哦!
小生博客:http://xsboke.blog.51cto.com
-------謝謝您的參考,如有疑問,歡迎交流
目錄
名詞解釋
HTTP協議簡介及其版本
HTTP的請求類型
HTTP協議報文
-------------------------------請求與響應報文格式
-------------------------------請求方法
-------------------------------HTTP返回狀態碼
-------------------------------HTTP首部介紹
-------------------------------常見的MIME類型
一次web資源請求的具體過程
客戶端(瀏覽器)從服務器請求數據基本步驟
HTTP接收多用戶的并發請求
Cookie流程
抓包工具和命令
-------------------------------Sniffer
-------------------------------Wireshark
-------------------------------Curl
一、 名詞解釋
二、 HTTP協議簡介及其版本
1. HTTP協議簡介
HTTP(Hyper Text Transfer Protocol 超文本傳輸協議):
是互聯網應用最為廣泛的一種網絡協議,主要用于Web服務。通過計算機處理文本信息,格式 為HTML(Hyper Text Mark Language)超文本標記語言來實現。
2. HTTP協議版本
三、 HTTP的請求類型
1. 靜態(事先就編輯并定義完成的)
1) 首先web服務器向內核注冊socket(套接字,監聽瀏覽器請求)
2) 客戶端通過瀏覽器,向web服務器發起request請求
3) Web服務器收到客戶端的request信息
4) 如果用戶請求的資源在服務器本地的話,http服務會向系統內核申請調用
5) 內核調用本地磁盤里的數據,并將數據發給http服務
6) http將用戶請求的資源通過response報文,最終響應給客戶端
2. 動態(通過編程語言編寫的程序,然后輸出html格式)
動態與靜態相似,只不過是中間多了一個調用后端解釋器的步驟,通過解釋器將
數據生成html格式的文件,然后構建成響應報文,最終返回客戶端。
四、 HTTP協議報文
1. 請求方法
2. HTTP返回狀態碼
3. HTTP首部介紹
4. 常見的MIME類型
五、 一次web資源請求的具體過程
六、 客戶端(瀏覽器)從服務器請求數據的基本步驟
用戶發起一個http請求,緩存獲取到URL,根據URL查找是否有匹配的副本,這個副本可能在內存中,也可能在本地磁盤。
如果請求命中本地緩存則從本地緩存中獲取一個對應資源的"copy";
檢查這個"copy"是否過期,否則直接返回,是則繼續向服務器轉發請求。 HTTP中,通過Cache-Control首部和Expires首部為文檔指定了過期時間,通過對過期時間的判斷,緩存就可以知道文檔是不是在保質期內。Expires首部和Cache-Control:max-age首部都是來告訴緩存文檔有沒有過期,為什么需要兩個響應首部來做這件簡單的事情了?其實這一切都是歷史原因,Expires首部是HTTP 1.0中提出來的,因為他使用的是絕對日期,如果服務端和客戶端時鐘不同步的話(實際上這種情況非常常見),緩存可能就會認為文檔已經過了保質期。
服務器接收到請求,然后判斷資源是否變更,是則返回新內容,否則返回304:未變更,更新過期時間。
七、HTTP接收多用戶的并發請求
1. Apache
Apache默認的工作模型是阻塞模型,默認一次只接收并且處理一個請求,通過主進程生成
子進程,然后主進程收到請求時交給子進程進行處理這種方法,實現接收多用戶并發請求
2. Nginx
Nginx默認工作模型為非阻塞模型,通過worker_processes指定工作進程數,默認為1,而
nginx的一個進程可以處理多個并發連接請求
八、 Cookie流程
Web客戶端通過瀏覽器向Web服務器發送連接請求,通過HTTP報文請求行中的URL打開某一Web頁面。
Web服務器接收到請求后,根據用戶端提供的信息產生一個Set-Cookies Header。
將生成的Set-Cookies Header通過Response Header存放在HTTP報文中回傳給Web客戶端,建立一次會話連接。
Web客戶端收到HTTP應答報文后,如果要繼續已建立的這次會話,則將Cookies的內容從HTTP報文中取出,形成一個Cookies文本文件儲存在客戶端計算機的硬盤中或保存在客戶端計算機的內存中。
當Web客戶端再次向Web服務器發送連接請求時,Web瀏覽器首先根據要訪問站點的URL在本地計算機上尋找對應的Cookies文本文件或在本地計算機的內存中尋找對應的Cookies內容。如果找到,則將此Cookies內容存放在HTTP請求報文中發給Web服務器。
Web服務器接收到包含Cookies內容的HTTP請求后,檢索其Cookies中與用戶有關的信息,并根據檢索結果生成一個客戶端所請求的頁面應答傳遞給客戶端。
九、抓包工具和命令
Sniffer
l Sniffer,中文可以翻譯為嗅探器,也叫抓數據包軟件,是一種基于被動偵聽原理的網絡分析方式。使用這種技術方式,可以監視網絡的狀態、數據流動情況以及網絡上傳輸的信息。
l Sniffer程序是一種利用以太網的特性把網絡適配卡(NIC,一般為以太網卡)置為雜亂(promiscuous)模式狀態的工具,一旦網卡設置為這種模式,它就能接收傳輸在網絡上的每一個信息包。
Wireshark
l Wireshark(前稱Ethereal)是一個網絡封包分析軟件。網絡封包分析軟件的功能是擷取網絡封包,并盡可能顯示出最為詳細的網絡封包資料。Wireshark使用WinPCAP作為接口,直接與網卡進行數據報文交換
l 可以通過wireshark包進行數據分析,是一個常用的數據包分析工具,可以用于檢測服務器是否有安全隱患,比如,在響應報文中,是否應答了server字段,這個字段指定了服務器使用的程序及其版本,如果被***者知道這些信息后,***者可以根據程序及其版本的漏洞進行***
Curl
l curl是利用URL語法在命令行方式下工作的開源文件傳輸工具。它被廣泛應用在Unix、多種Linux發行版中,并且有DOS和Win32、Win64下的移植版本。
l curl命令是一個利用URL規則在命令行下工作的文件傳輸工具。它支持文件的上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱curl為下載工具。
l 作為一款強力工具,curl支持包括HTTP、HTTPS、ftp等眾多協議,還支持POST、cookies、認證、從指定偏移處下載部分文件、用戶代理字符串、限速、文件大小、進度條等特征。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。