您好,登錄后才能下訂單哦!
小生博客: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é)議簡介及其版本
1. HTTP協(xié)議簡介
HTTP(Hyper Text Transfer Protocol 超文本傳輸協(xié)議):
是互聯(lián)網(wǎng)應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,主要用于Web服務(wù)。通過計算機處理文本信息,格式 為HTML(Hyper Text Mark Language)超文本標記語言來實現(xiàn)。
2. HTTP協(xié)議版本
三、 HTTP的請求類型
1. 靜態(tài)(事先就編輯并定義完成的)
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格式)
動態(tài)與靜態(tài)相似,只不過是中間多了一個調(diào)用后端解釋器的步驟,通過解釋器將
數(shù)據(jù)生成html格式的文件,然后構(gòu)建成響應(yīng)報文,最終返回客戶端。
四、 HTTP協(xié)議報文
1. 請求方法
2. HTTP返回狀態(tài)碼
3. HTTP首部介紹
4. 常見的MIME類型
五、 一次web資源請求的具體過程
六、 客戶端(瀏覽器)從服務(wù)器請求數(shù)據(jù)的基本步驟
用戶發(fā)起一個http請求,緩存獲取到URL,根據(jù)URL查找是否有匹配的副本,這個副本可能在內(nèi)存中,也可能在本地磁盤。
如果請求命中本地緩存則從本地緩存中獲取一個對應(yīng)資源的"copy";
檢查這個"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ì)期。
服務(wù)器接收到請求,然后判斷資源是否變更,是則返回新內(nèi)容,否則返回304:未變更,更新過期時間。
七、HTTP接收多用戶的并發(fā)請求
1. Apache
Apache默認的工作模型是阻塞模型,默認一次只接收并且處理一個請求,通過主進程生成
子進程,然后主進程收到請求時交給子進程進行處理這種方法,實現(xiàn)接收多用戶并發(fā)請求
2. Nginx
Nginx默認工作模型為非阻塞模型,通過worker_processes指定工作進程數(shù),默認為1,而
nginx的一個進程可以處理多個并發(fā)連接請求
八、 Cookie流程
Web客戶端通過瀏覽器向Web服務(wù)器發(fā)送連接請求,通過HTTP報文請求行中的URL打開某一Web頁面。
Web服務(wù)器接收到請求后,根據(jù)用戶端提供的信息產(chǎn)生一個Set-Cookies Header。
將生成的Set-Cookies Header通過Response Header存放在HTTP報文中回傳給Web客戶端,建立一次會話連接。
Web客戶端收到HTTP應(yīng)答報文后,如果要繼續(xù)已建立的這次會話,則將Cookies的內(nèi)容從HTTP報文中取出,形成一個Cookies文本文件儲存在客戶端計算機的硬盤中或保存在客戶端計算機的內(nèi)存中。
當(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ù)器。
Web服務(wù)器接收到包含Cookies內(nèi)容的HTTP請求后,檢索其Cookies中與用戶有關(guān)的信息,并根據(jù)檢索結(jié)果生成一個客戶端所請求的頁面應(yīng)答傳遞給客戶端。
九、抓包工具和命令
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ò)上的每一個信息包。
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ù)程序及其版本的漏洞進行***
Curl
l curl是利用URL語法在命令行方式下工作的開源文件傳輸工具。它被廣泛應(yīng)用在Unix、多種Linux發(fā)行版中,并且有DOS和Win32、Win64下的移植版本。
l curl命令是一個利用URL規(guī)則在命令行下工作的文件傳輸工具。它支持文件的上傳和下載,所以是綜合傳輸工具,但按傳統(tǒng),習(xí)慣稱curl為下載工具。
l 作為一款強力工具,curl支持包括HTTP、HTTPS、ftp等眾多協(xié)議,還支持POST、cookies、認證、從指定偏移處下載部分文件、用戶代理字符串、限速、文件大小、進度條等特征。
免責(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)容。