http協(xié)議的構(gòu)成
超文本傳輸協(xié)議(HTTP慨代,HyperText Transfer Protocol)
- URL定義:Uniform Resource Locator,統(tǒng)一資源定位符
- URI定義:Uniform Resource Identifier啸如,統(tǒng)一資源標(biāo)識(shí)符侍匙,用來(lái)唯一的標(biāo)識(shí)一個(gè)資源
URL是一種具體的URI,即URL可以用來(lái)標(biāo)識(shí)一個(gè)資源叮雳,而且還指明了如何locate這個(gè)資源想暗,URI是一種語(yǔ)義上的抽象概念,可以是絕對(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頁(yè)厌均,通常不用輸入唬滑,瀏覽器會(huì)自動(dòng)加上;
- :80:端口棺弊,http協(xié)議默認(rèn)80端口晶密,可省略
- www:代表一個(gè)Web(萬(wàn)維網(wǎng))服務(wù)器;
- baidu.com/:這是裝有網(wǎng)頁(yè)的服務(wù)器的域名模她,或站點(diǎn)服務(wù)器的名稱稻艰;
- China/:為該服務(wù)器上的子目錄,就好像我們的文件夾侈净;
- Index.htm:index.htm是文件夾中的一個(gè)HTML文件(網(wǎng)頁(yè))尊勿。
URL編碼是什么僧凤?
對(duì)于web設(shè)計(jì)者來(lái)說(shuō),難題之一便是怎樣處理不同操作系統(tǒng)間的差異性元扔。這些差異性能引起URL方面的問(wèn)題:例如躯保,一些操作系統(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)上都有其特殊的含義,表述著相似的問(wèn)題垄懂。為了解決這些問(wèn)題骑晶,我們?cè)赨RL中使用的字符就必須是一個(gè)ASCII字符集的固定字集中的元素。
字符:/ & ? @ # ; $ + = %
也可以被使用草慧,但是它們各有其特殊的用途,如果一個(gè)文件名包括了這些字符匙头,這些字符和所有其他字符就應(yīng)該被編碼漫谷。
http://tool.chinaz.com/Tools/Unicode.aspx
編碼過(guò)程非常簡(jiǎn)單,任何字符只要不是ASCII碼數(shù)字蹂析,字母舔示,或者前面提到的標(biāo)點(diǎn)符,它們都將被轉(zhuǎn)換成字節(jié)形式电抚,每個(gè)字節(jié)都寫(xiě)成這種形式:一個(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)求的頁(yè)面已經(jīng)轉(zhuǎn)移至新的url吐葱。
- 304 Not Modified 服務(wù)器告訴客戶,原來(lái)緩存的文檔還可以繼續(xù)使用校翔。
- 4xx 請(qǐng)求錯(cuò)誤 -- 請(qǐng)求含有詞法錯(cuò)誤或者無(wú)法被執(zhí)行
- 400 Bad Request 服務(wù)器未能理解請(qǐng)求唇撬。
- 401 Unauthorized 被請(qǐng)求的頁(yè)面需要用戶名和密碼。
- 403 Forbidden 對(duì)被請(qǐng)求頁(yè)面的訪問(wèn)被禁止展融。
- 404 Not Found 服務(wù)器無(wú)法找到被請(qǐng)求的頁(yè)面窖认。
- 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è)無(wú)效的響應(yīng)。