本節(jié)將介紹上一節(jié)提到的三種協(xié)議數(shù)據(jù)包分析。
上節(jié)提到一次與服務(wù)器交互的過程會(huì)有請(qǐng)求和返回鸡号,而每一種協(xié)議的請(qǐng)求和返回的數(shù)據(jù)格式都會(huì)包含“頭部(head)”转砖,“身體(body)”。
- 頭部主要是存放一些固定格式的信息用于定義本條數(shù)據(jù)
- 身體主要是存放一些用戶自定義參數(shù)鲸伴。
1.http協(xié)議
http協(xié)議是我們最常見的協(xié)議府蔗,http請(qǐng)求與http返回的區(qū)別就是http請(qǐng)求會(huì)有一個(gè)請(qǐng)求地址,而http返回沒有請(qǐng)求地址汞窗,但會(huì)有一個(gè)返回碼姓赤。
http請(qǐng)求
http的請(qǐng)求地址格式就是我們接觸最多網(wǎng)站url,比如“http://www.baidu.com”
http協(xié)議的請(qǐng)求會(huì)分為4個(gè)類型:POST仲吏,GET不铆,PUT蝌焚,DELETE,比較常用的是POST和GET誓斥。POST和GET的區(qū)別在于只洒,POST的請(qǐng)求參數(shù)是放在“身體”中的,而GET是放在在URL的后面劳坑,用毕谴?隔開。
(fiddler get請(qǐng)求配圖)
(filldler post配圖)-
http的請(qǐng)求頭部中可以看到這個(gè)請(qǐng)求的好多信息泡垃,比較常用的有以下幾個(gè):
- Host:客戶端指定自己想訪問的WEB服務(wù)器的域名/IP 地址和端口號(hào)析珊。
- User-Agent:表明該請(qǐng)求是哪種瀏覽器發(fā)出來的
- Accept:告訴WEB服務(wù)器自己接受什么介質(zhì)類型羡鸥,/ 表示任何類型蔑穴,type/* 表示該類型下的所有子類型
- Accept-Encoding: 瀏覽器申明自己接收的編碼方法,通常指定壓縮方法惧浴,是否支持壓縮存和,支持什么壓縮方法 (gzip,deflate)
- Connection:
close(告訴WEB服務(wù)器或者代理服務(wù)器衷旅,在完成本次請(qǐng)求的響應(yīng)后捐腿,斷開連接,不要等待本次連接的后續(xù)請(qǐng)求了)柿顶。
keepalive(告訴WEB服務(wù)器或者代理服務(wù)器茄袖,在完成本次請(qǐng)求的響應(yīng)后,保持連接嘁锯,等待本次連接的后續(xù)請(qǐng)求)宪祥。 - Cookie:帶上瀏覽器上同源的cookie信息
-
一個(gè)實(shí)例:
Host:rss.sina.com.cn
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
Accept:text/xml,application/xml,application/xhtml+xml
Accept-Language:zh-cn,zh;q=0.5
Accept-Encoding:gzip,deflate
Accept-Charset:gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive:300
Connection:keep-alive
Cookie:userId=C5bYpXrimdmsiQmsBPnE1Vn8ZQmdWS
If-Modified-Since:Sun, 01 Jun 2008 12:05:30 GMT
Cache-Control:max-age=0
http返回
http返回碼
HTTP響應(yīng)碼響應(yīng)碼由三位十進(jìn)制數(shù)字組成,它們出現(xiàn)在由HTTP服務(wù)器發(fā)送的響應(yīng)的第一行家乘。
響應(yīng)碼分五種類型蝗羊,由它們的第一位數(shù)字表示:
1xx:信息,請(qǐng)求收到仁锯,繼續(xù)處理
2xx:成功耀找,行為被成功地接受、理解和采納(常見:200)
3xx:重定向业崖,為了完成請(qǐng)求野芒,必須進(jìn)一步執(zhí)行的動(dòng)作(常見:302)
4xx:客戶端錯(cuò)誤,請(qǐng)求包含語(yǔ)法錯(cuò)誤或者請(qǐng)求無法實(shí)現(xiàn)(常見:404双炕,頁(yè)面找不到)
5xx:服務(wù)器錯(cuò)誤复罐,服務(wù)器不能實(shí)現(xiàn)一種明顯無效的請(qǐng)求(常見:500,服務(wù)器錯(cuò)誤)返回頭部介紹
Server:說明了服務(wù)器的類型
Content-Length:返回體的大小
Set-cookie:給瀏覽器添加一個(gè)cookie
Content-Type:返回內(nèi)容的格式
Connection:連接是否關(guān)閉一個(gè)實(shí)例:
Status:OK - 200
Date:Sun, 01 Jun 2008 12:35:47 GMT
Server:Apache/2.0.61 (Unix)
Last-Modified:Sun, 01 Jun 2008 12:35:30 GMT
Accept-Ranges:bytes
Content-Length:18616
Set-cookie:user=adfsfsfsf
Cache-Control:max-age=120
Expires:Sun, 01 Jun 2008 12:37:47 GMT
Content-Type:application/xml
Connection:close
http數(shù)據(jù)包抓包
- 我們可以通過“抓包”來獲取一個(gè)詳細(xì)的http數(shù)據(jù)包雄家。常見的http抓包工具有:fiddler效诅,charles胀滚,wireshark,tcpdump和瀏覽器自帶的開發(fā)者模式中的network工具欄乱投。如下圖為fiddler抓包的情況咽笼。
(配圖) - http請(qǐng)求http的請(qǐng)求可以在fiddler的這里看到,
(配圖)