Http協(xié)議與網(wǎng)絡(luò)抓包

http協(xié)議的構(gòu)成

超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol)

  • URL定義:Uniform Resource Locator,統(tǒng)一資源定位符
  • URI定義:Uniform Resource Identifier,統(tǒng)一資源標(biāo)識(shí)符,用來唯一的標(biāo)識(shí)一個(gè)資源

URL是一種具體的URI,即URL可以用來標(biāo)識(shí)一個(gè)資源,而且還指明了如何locate這個(gè)資源,URI是一種語義上的抽象概念,可以是絕對(duì)的,也可以是相對(duì)的.

http://www.baidu.com:80/china/index.htm?search=lzy&keywords=github
這么一個(gè)網(wǎng)址表示什么意思?

  • http:// :代表超文本傳輸協(xié)議,通知baidu.com服務(wù)器顯示W(wǎng)eb頁,通常不用輸入,瀏覽器會(huì)自動(dòng)加上;
  • :80:端口,http協(xié)議默認(rèn)80端口,可省略
  • www:代表一個(gè)Web(萬維網(wǎng))服務(wù)器;
  • baidu.com/:這是裝有網(wǎng)頁的服務(wù)器的域名,或站點(diǎn)服務(wù)器的名稱;
  • China/:為該服務(wù)器上的子目錄,就好像我們的文件夾;
  • Index.htm:index.htm是文件夾中的一個(gè)HTML文件(網(wǎng)頁)。

URL編碼是什么?

對(duì)于web設(shè)計(jì)者來說,難題之一便是怎樣處理不同操作系統(tǒng)間的差異性。這些差異性能引起URL方面的問題:例如,一些操作系統(tǒng)允許文件名中含有空格符,有些又不允許。大多數(shù)操作系統(tǒng)不會(huì)認(rèn)為文件名中含有符號(hào)“#”會(huì)有什么特殊含義,但是在一個(gè)URL中,符號(hào)“#”表示該文件名已經(jīng)結(jié)束,后面會(huì)緊跟一個(gè)標(biāo)識(shí)符。此外,對(duì)于其他的特殊字符,非字母數(shù)字字符集,它們?cè)赨RL或另一個(gè)操作系統(tǒng)上都有其特殊的含義,表述著相似的問題。為了解決這些問題,我們?cè)赨RL中使用的字符就必須是一個(gè)ASCII字符集的固定字集中的元素。

字符:/ & ? @ # ; $ + = %也可以被使用,但是它們各有其特殊的用途,如果一個(gè)文件名包括了這些字符,這些字符和所有其他字符就應(yīng)該被編碼。

http://tool.chinaz.com/Tools/Unicode.aspx

編碼過程非常簡單,任何字符只要不是ASCII碼數(shù)字,字母,或者前面提到的標(biāo)點(diǎn)符,它們都將被轉(zhuǎn)換成字節(jié)形式,每個(gè)字節(jié)都寫成這種形式:一個(gè)“%”后面跟著兩位16進(jìn)制的數(shù)值。空格是一個(gè)特殊情況,因?yàn)樗鼈兲匠A恕K吮痪幋a成“%20”以外,還能編碼為一個(gè)“+”。加號(hào)(+)本身被編碼為%2B。

Http協(xié)議組成部分

結(jié)合抓包理解http協(xié)議

抓包軟件:
windows --> fiddler
mac --> charles

  • 請(qǐng)求狀態(tài)行
  • 請(qǐng)求頭
  • 請(qǐng)求空行
  • 請(qǐng)求體

請(qǐng)求方法

  • GET -- 查
  • POST -- 增
  • PUT -- 改
  • DELETE -- 刪
  • HEAD
  • OPTIONS
  • TRACE
  • CONNECT

狀態(tài)碼

  • 1xx 消息 -- 請(qǐng)求已被服務(wù)器接收,繼續(xù)處理
  • 2xx 成功 -- 請(qǐng)求已成功被服務(wù)器接收、理解、并接受
    • 200 OK 請(qǐng)求成功
    • 206 Partial Content 客戶發(fā)送了一個(gè)帶有Range頭的請(qǐng)求,服務(wù)器完成了它。
  • 3xx 重定向 -- 需要后續(xù)操作才能完成這一請(qǐng)求
    • 301 Moved Permanently 重定向,所請(qǐng)求的頁面已經(jīng)轉(zhuǎn)移至新的url。
    • 304 Not Modified 服務(wù)器告訴客戶,原來緩存的文檔還可以繼續(xù)使用。
  • 4xx 請(qǐng)求錯(cuò)誤 -- 請(qǐng)求含有詞法錯(cuò)誤或者無法被執(zhí)行
    • 400 Bad Request 服務(wù)器未能理解請(qǐng)求。
    • 401 Unauthorized 被請(qǐng)求的頁面需要用戶名和密碼。
    • 403 Forbidden 對(duì)被請(qǐng)求頁面的訪問被禁止。
    • 404 Not Found 服務(wù)器無法找到被請(qǐng)求的頁面。
    • 405 Method Not Allowed 請(qǐng)求中指定的方法不被允許。
    • 415 Unsupported Media Type 由于媒介類型不被支持,服務(wù)器不會(huì)接受請(qǐng)求。
  • 5xx 服務(wù)器錯(cuò)誤 -- 服務(wù)器在處理某個(gè)正確請(qǐng)求時(shí)發(fā)生錯(cuò)誤
    • 500 Internal Server Error 請(qǐng)求未完成,服務(wù)器遇到不可預(yù)知的情況。
    • 502 Bad Gateway 請(qǐng)求未完成,服務(wù)器從上游服務(wù)器收到一個(gè)無效的響應(yīng)。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容