亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

四 請(qǐng)求頭和響應(yīng)頭

還記得我們前面提到的上網(wǎng)流程吧?

1 DNS解析,獲取A記錄,找到網(wǎng)站對(duì)應(yīng)的IP地址

2 三次握手

三次握手之前服務(wù)器處在listen狀態(tài) 建立完三次握手之后服務(wù)器處于established狀態(tài)可以傳輸數(shù)據(jù)

Established階段的工作

1) 客戶端發(fā)起請(qǐng)求,告訴服務(wù)器要什么
http://www.sina.com.cn/meizi.jpg

2) 服務(wù)器接收請(qǐng)求:讀取請(qǐng)求信息內(nèi)容

3) 服務(wù)器處理請(qǐng)求:將請(qǐng)求交給文件系統(tǒng),讓文件系統(tǒng)去找文件

4) 服務(wù)器響應(yīng)請(qǐng)求:將數(shù)據(jù)交給客戶端

a) 要不要壓縮?(取決于雙方是否支持壓縮)

b) 是否開了長(zhǎng)連接(長(zhǎng)連接:在服務(wù)器和客戶端建立連接之后,不會(huì)立即斷開,會(huì)等待一定時(shí)間,在此時(shí)間內(nèi)如果再有數(shù)據(jù)包發(fā)送就不需要進(jìn)行三次握手,可直接發(fā)送,對(duì)應(yīng)的就是短連接)

3 四次斷開

在這個(gè)流程中接收請(qǐng)求和處理請(qǐng)求是在服務(wù)器內(nèi)部完成的,所以呢,我們來(lái)看一下發(fā)起請(qǐng)求和響應(yīng)請(qǐng)求

環(huán)境準(zhǔn)備

為Apache生成一個(gè)web頁(yè)面

echo "hello" > /var/www/html/index.html
systemctl restart httpd
訪問(wèn)測(cè)試

安裝wireshark(圖形界面查看數(shù)據(jù)包內(nèi)容的工具)

[root@manage01 ~]# dnf install wireshark* -y

抓包

[root@manage01 ~]# tcpdump -nn -vvv -s 1500 -w /tmp/httpd host 172.16.121.141 and port 80 -i ens37

切換到另一臺(tái)主機(jī)訪問(wèn)

curl 172.16.121.141

使用apache主機(jī)查看抓到的數(shù)據(jù)包

[root@manage01 ~]# wireshark /tmp/httpd 

 

apache-4-請(qǐng)求頭和響應(yīng)頭

 

 

wireshark的幾面分為三部分

第一部分是數(shù)據(jù)包列表

No.: 序號(hào)

Time: 時(shí)間

Source: 源地址

Destination: 目標(biāo)地址

Protocol:協(xié)議

Length:長(zhǎng)度

info:簡(jiǎn)介

第二部分為數(shù)據(jù)包的詳細(xì)信息

Frame&Ethernet 數(shù)據(jù)鏈路層數(shù)據(jù),主要是mac地址和幀

Internet protocol 網(wǎng)絡(luò)層信息 邏輯鏈路尋址,主要是IP地址

Transmssion Control 傳輸控制,可以查看應(yīng)用層信息

第三部分為16進(jìn)制數(shù)據(jù)

在wireshark中如果是確認(rèn)包,在選中的時(shí)候前面會(huì)有√的標(biāo)記,如果是請(qǐng)求包會(huì)有→的標(biāo)記,如果是響應(yīng)包會(huì)有←的標(biāo)記

我們先看一下第四個(gè)包,請(qǐng)求頭

 

apache-4-請(qǐng)求頭和響應(yīng)頭

 

 


Hypertext Transfer Protocol
#HTTP協(xié)議
    GET / HTTP/1.1rn #請(qǐng)求信息
        [Expert Info (Chat/Sequence): GET / HTTP/1.1rn]#專家信息
            [GET / HTTP/1.1rn]
            #獲取根下的數(shù)據(jù),http協(xié)議的版本是1.1 rn=換行符
            [Severity level: Chat]
            #嚴(yán)重級(jí)別 chat note warn error
            [Group: Sequence]
            #數(shù)據(jù)包屬于哪個(gè)組(類)
                Checksum:校驗(yàn)和類
                            Sequence:序列號(hào)類
                            Response:響應(yīng)類
                            Request:請(qǐng)求類
                            Undecoded:不能識(shí)別類
                            Reassemble:重組問(wèn)題類
                            Malformed:畸形數(shù)據(jù)包類
                            Debug:不應(yīng)該出現(xiàn)匹配此類型的數(shù)據(jù)包


        Request Method: GET
        #請(qǐng)求的方法是get,獲取數(shù)據(jù),獲取的數(shù)據(jù)通過(guò)Request URI指定
        get     獲取指定的資源
        post    向指定資源提交數(shù)據(jù)進(jìn)行處理,有可能導(dǎo)致新的資源的建立或原有資源的修改
        put     向指定資源位置上上傳其最新內(nèi)容(從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定資源的內(nèi)容)
        delete  刪除指定的資源
        opions 返回服務(wù)器針對(duì)特定資源所支持的HTML請(qǐng)求方法 或web服務(wù)器發(fā)送測(cè)試服務(wù)器功能(允許客戶端查看服務(wù)器性能)
        Trace 回顯服務(wù)器收到的請(qǐng)求,用于測(cè)試和診斷
        Connect 將服務(wù)器作為代理,讓服務(wù)器代替用戶去訪問(wèn)其他網(wǎng)頁(yè),之后將數(shù)據(jù)返回給用戶。
        Head 與get請(qǐng)求類似,返回的響應(yīng)中沒(méi)有具體內(nèi)容,用于獲取報(bào)頭
        Request URI: /
        #請(qǐng)求的資源信息
        Request Version: HTTP/1.1
        #請(qǐng)求的版本
    Host: 172.16.121.141rn
    #請(qǐng)求的主機(jī)信息
    User-Agent: curl/7.64.1rn
    #客戶端瀏覽器和版本
    Accept: */*rn
    rn
    #客戶端支持的內(nèi)容類型,服務(wù)器會(huì)根據(jù)此內(nèi)容返回信息
    內(nèi)容類型主要指的是文本類,視頻,音頻,圖片等
        Accept:text/html,Application/xhtml+xm… #接受的數(shù)據(jù)類型
        Accept-Language:en-US,en;q=0.5  #語(yǔ)言環(huán)境
        Accept-Encoding:gzip, deflate   #是否支持壓縮,及類型
        Connection:keep-alive   #是否支持長(zhǎng)連接
        Upgrade-Insecure-Requests:1 #客戶端優(yōu)先選擇加密及帶有身份驗(yàn)證的響應(yīng)
        If-Modified-Since: Wed, 25 Mar 2020 12:18:04 GMT
        #把瀏覽器端緩存頁(yè)面的最后修改時(shí)間一起發(fā)到服務(wù)器去,服務(wù)器會(huì)把這個(gè)時(shí)間與服務(wù)器上實(shí)際文件的最后修改時(shí)間進(jìn)行比較。如果時(shí)間一致,那么返回HTTP狀態(tài)碼304(不返回文件內(nèi)容),客戶端接到之后,就直接把本地緩存文件顯示到瀏覽器中。如果時(shí)間不一致,就返回HTTP狀態(tài)碼200和新的文件內(nèi)容,客戶端接到之后,會(huì)丟棄舊文件,把新文件緩存起來(lái),并顯示到瀏覽器中。(如果客戶端是第一次訪問(wèn),不會(huì)出現(xiàn)此字段,因?yàn)榭蛻舳藳](méi)有相關(guān)緩存數(shù)據(jù))
        If-None-Match: "5-5a1acdc3a6d9e" #驗(yàn)證標(biāo)簽,用來(lái)幫助控制緩存驗(yàn)證
    [Full request URI: http://172.16.121.141/]
    #完整的請(qǐng)求信息
    [HTTP request 1/1]
    #http請(qǐng)求進(jìn)度
    [Response in frame: 6]
    #響應(yīng)幀是第6幀
    [Next request in frame:8]
    #下一個(gè)請(qǐng)求幀

 

請(qǐng)求頭我們就看完了,接下來(lái)就是一個(gè)應(yīng)答包

 

apache-4-請(qǐng)求頭和響應(yīng)頭

 

 

這個(gè)應(yīng)答包的作用就是服務(wù)器告訴客戶端:“你的請(qǐng)求我收到了,等著吧,我給你找數(shù)據(jù)”,如果客戶端收不到這個(gè)應(yīng)答吧,就會(huì)再次發(fā)起請(qǐng)求

然后第六個(gè)就是響應(yīng)包,來(lái)看下響應(yīng)包當(dāng)中的響應(yīng)頭

Hypertext Transfer Protocol
    HTTP/1.1 200 OKrn
    #響應(yīng)代碼 
        [Expert Info (Chat/Sequence): HTTP/1.1 200 OKrn]
            [HTTP/1.1 200 OKrn]
            [Severity level: Chat]
            [Group: Sequence]
        Response Version: HTTP/1.1
        #響應(yīng)版本
        Status Code: 200
        #響應(yīng)代碼
        [Status Code Description: OK]
        #狀態(tài)代碼介紹
        Response Phrase: OK
        #響應(yīng)短語(yǔ)
    Date: Wed, 25 Mar 2020 02:37:05 GMTrn
    #響應(yīng)時(shí)間
    Server: Apache/2.4.37 (centos)rn
    #服務(wù)器版本
    Last-Modified: Wed, 25 Mar 2020 02:33:30 GMTrn
    #服務(wù)器認(rèn)定的資源做出修改的日期及時(shí)間。 它通常被用作判斷接收到的或者存儲(chǔ)的資源是否一致。由于精確度比ETag要低,所以這是一個(gè)備用機(jī)制。
    ETag: "6-5a1a4b1a67408"rn
    #驗(yàn)證標(biāo)簽,用來(lái)幫助控制緩存驗(yàn)證,當(dāng)瀏覽器請(qǐng)求服務(wù)器的某項(xiàng)資源(A)時(shí), 服務(wù)器根據(jù)A算出一個(gè)哈希值,并通過(guò) ETag 返回給瀏覽器,瀏覽器把對(duì)應(yīng)的哈希值和A同時(shí)緩存在本地,當(dāng)下次再次向服務(wù)器請(qǐng)求A時(shí),會(huì)把這個(gè)哈希值發(fā)送給服務(wù)器,服務(wù)器再次計(jì)算A的哈希值并和剛剛接收到的哈希值做比較,如果發(fā)現(xiàn)A發(fā)生了變化就把A返回給瀏覽器(200),如果發(fā)現(xiàn)A沒(méi)有變化就給瀏覽器返回一個(gè)304未修改。這樣通過(guò)控制瀏覽器端的緩存,可以節(jié)省服務(wù)器的帶寬,因?yàn)榉?wù)器不需要每次都把全量數(shù)據(jù)返回給客戶端
    Accept-Ranges: bytesrn
    #接受范圍,如果出現(xiàn)此字段表示,這是一個(gè)續(xù)傳的下載(斷點(diǎn)續(xù)傳),bytes表示服務(wù)器可接受范圍請(qǐng)求的單位是bytes,none表示不支持
    Content-Length: 6rn
    #返回的數(shù)據(jù)長(zhǎng)度,單位為字節(jié)
        [Content length: 6]
    Keep-Alive: timeout=5, max=100
    #長(zhǎng)連接的時(shí)長(zhǎng)及能夠處理的請(qǐng)求數(shù)量
    Connection:keep-alive
    #支持長(zhǎng)連接
    Content-Type: text/html; charset=UTF-8rn
    rn
    #頁(yè)面類型,文本、圖片、視頻、音頻,及字符編碼
    [HTTP response 1/1]
    #響應(yīng)進(jìn)度
    [Time since request: 0.019117000 seconds]
    #響應(yīng)耗時(shí)
    [Request in frame: 4]
    #請(qǐng)求幀是第四幀
    [Next request in frame:8]
    #下一個(gè)請(qǐng)求幀
    [Next response in frame:9]
    #下一個(gè)響應(yīng)幀
    File Data: 6 bytes
    #數(shù)據(jù)大小
Line-based text data: text/html (1 lines)
#數(shù)據(jù)類型及相關(guān)信息
    hellon
#數(shù)據(jù)內(nèi)容

以上就是http的請(qǐng)求頭內(nèi)容和響應(yīng)頭內(nèi)容

1xx(臨時(shí)響應(yīng))

100: 請(qǐng)求者應(yīng)當(dāng)繼續(xù)提出請(qǐng)求。

101(切換協(xié)議) 請(qǐng)求者已要求服務(wù)器切換協(xié)議,服務(wù)器已確認(rèn)并準(zhǔn)備進(jìn)行切換。

2xx(成功)
200:正確的請(qǐng)求返回正確的結(jié)果,如果不想細(xì)分正確的請(qǐng)求結(jié)果都可以直接返回200。

201:表示資源被正確的創(chuàng)建。比如說(shuō),我們 POST 用戶名、密碼正確創(chuàng)建了一個(gè)用戶就可以返回 201。
202:請(qǐng)求是正確的,但是結(jié)果正在處理中,這時(shí)候客戶端可以通過(guò)輪詢等機(jī)制繼續(xù)請(qǐng)求。
203:請(qǐng)求的代理服務(wù)器修改了源服務(wù)器返回的 200 中的內(nèi)容,我們通過(guò)代理服務(wù)器向服務(wù)器 A 請(qǐng)求用戶信息,服務(wù)器 A 正常響應(yīng),但代理服務(wù)器命中了緩存并返回了自己的緩存內(nèi)容,這時(shí)候它返回 203 告訴我們這部分信息不一定是最新的,我們可以自行判斷并處理。

3xx(已重定向)
300:請(qǐng)求成功,但結(jié)果有多種選擇。
301:請(qǐng)求成功,但是資源被永久轉(zhuǎn)移。比如說(shuō),我們下載的東西不在這個(gè)地址需要去到新的地址。
303:使用 GET 來(lái)訪問(wèn)新的地址來(lái)獲取資源。
304:請(qǐng)求的資源并沒(méi)有被修改過(guò)。
308:使用原有的地址請(qǐng)求方式來(lái)通過(guò)新地址獲取資源。

4xx(請(qǐng)求錯(cuò)誤)
400:請(qǐng)求出現(xiàn)錯(cuò)誤,比如請(qǐng)求頭不對(duì)等。
401:沒(méi)有提供認(rèn)證信息。
402:為以后需要所保留的狀態(tài)碼。
403:請(qǐng)求的資源不允許訪問(wèn)。就是說(shuō)沒(méi)有權(quán)限。
404:請(qǐng)求的內(nèi)容不存在。
406:請(qǐng)求的資源并不符合要求。
408:客戶端請(qǐng)求超時(shí)。
413:請(qǐng)求體過(guò)大。
415:類型不正確。
416:請(qǐng)求的區(qū)間無(wú)效。

5xx(服務(wù)器錯(cuò)誤)

500:服務(wù)器錯(cuò)誤。
501:請(qǐng)求還沒(méi)有被實(shí)現(xiàn)。
502:網(wǎng)關(guān)錯(cuò)誤。
503:服務(wù)暫時(shí)不可用。服務(wù)器正好在更新代碼重啟
505:請(qǐng)求的 HTTP 版本不支持。


總結(jié)

如何使用抓包工具

如何使用wireshark查看抓取到的數(shù)據(jù)包

wireshark的界面包含哪些內(nèi)容

請(qǐng)求頭當(dāng)中所包含的信息的含義

響應(yīng)頭分析

常用的響應(yīng)代碼含義

重點(diǎn):相關(guān)工具的使用,請(qǐng)求頭當(dāng)中包含的內(nèi)容,響應(yīng)頭當(dāng)中包含的內(nèi)容

難點(diǎn):記住并理解請(qǐng)求頭當(dāng)中所包含的信息和作用,理解響應(yīng)頭中字段的含義和作用,記住常用的響應(yīng)代碼功能

分享到:
標(biāo)簽:apache
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定