網(wǎng)站建設(shè)哪家好中國新聞
HTTP協(xié)議格式
HTTP是?個?本格式的協(xié)議.可以通過Chrome開發(fā)者?具或者Fiddler抓包,分析HTTP請求/響應(yīng)的細節(jié).
?抓包工具的使用
以Fiddler為例.
? 左側(cè)窗?顯?了所有的HTTP請求/響應(yīng),可以選中某個請求查看詳情.
? 右側(cè)上?顯?了HTTP請求的報?內(nèi)容.(切換到Raw標簽?可以看到詳細的數(shù)據(jù)格式)
? 右側(cè)下?顯?了HTTP響應(yīng)的報?內(nèi)容.(切換到Raw標簽?可以看到詳細的數(shù)據(jù)格式)
? 請求和響應(yīng)的詳細數(shù)據(jù),可以通過右下?的View in Notepad 通過記事本打開.
抓包工具的原理
Fiddler相當于?個"代理".
瀏覽器訪問sogou.com時,就會把HTTP請求先發(fā)給Fiddler,Fiddler再把請求轉(zhuǎn)發(fā)給sogou的服務(wù) 器.當sogou服務(wù)器返回數(shù)據(jù)時,Fiddler拿到返回數(shù)據(jù),再把數(shù)據(jù)交給瀏覽器.
因此Fiddler對于瀏覽器和sogou服務(wù)器之間交互的數(shù)據(jù)細節(jié),都是?常清楚的.
抓包結(jié)果
以下是?個HTTP請求/響應(yīng)的抓包結(jié)果.
HTTP請求
? ??:[?法]+[url]+[版本]
? Header:請求的屬性,冒號分割的鍵值對;每組屬性之間使?\n分隔;遇到空?表?Header部分結(jié)束
? Body:空?后?的內(nèi)容都是Body.Body允許為空字符串.如果Body存在,則在Header中會有?個 Content-Length屬性來標識Body的?度;
HTTP響應(yīng)
? ??:[版本號]+[狀態(tài)碼]+[狀態(tài)碼解釋]
? Header:請求的屬性,冒號分割的鍵值對;每組屬性之間使?\n分隔;遇到空?表?Header部分結(jié)束
? Body:空?后?的內(nèi)容都是Body.Body允許為空字符串.如果Body存在,則在Header中會有?個Content-Length屬性來標識Body的?度;如果服務(wù)器返回了?個html??,那么html??內(nèi)容就是在body中.
協(xié)議格式總結(jié)
一、請求格式
?
1.?請求行
- 包含請求方法(如 GET、POST、PUT 等)、請求的資源路徑和 HTTP 版本。例如:“GET /index.html HTTP/1.1”。
2.?請求頭
- 由一系列鍵值對組成,如“Host”表示請求的主機名,“User-Agent”表示發(fā)出請求的客戶端信息等。
- 每個請求頭占一行,格式為“頭字段名: 值”。
3.?空行
- 用于分隔請求頭和請求體。
4.?請求體
- 對于某些請求方法(如 POST),會包含要提交的數(shù)據(jù)。
?
二、響應(yīng)格式
?
1.?狀態(tài)行
- 包含 HTTP 版本、狀態(tài)碼和狀態(tài)描述。例如:“HTTP/1.1 200 OK”。
2.?響應(yīng)頭
- 與請求頭類似,也是一系列鍵值對,如“Content-Type”表示響應(yīng)內(nèi)容的類型,“Content-Length”表示響應(yīng)內(nèi)容的長度等。
3.?空行
- 分隔響應(yīng)頭和響應(yīng)體。
4.?響應(yīng)體
- 服務(wù)器返回的具體內(nèi)容,如 HTML 頁面、JSON 數(shù)據(jù)等。