指服務(wù)器和客戶端之間進(jìn)行通信是的約束和規(guī)范,客戶端與服務(wù)端的數(shù)據(jù)交互不是雜亂無(wú)章的,需要遵照一定的規(guī)范進(jìn)行。
常見協(xié)議
HTTP,HTTPS超文本傳輸協(xié)議
FTP文件傳輸協(xié)議
SMTP簡(jiǎn)單郵件傳輸協(xié)議
- HTTP協(xié)議
- 即超文本傳輸協(xié)議,網(wǎng)站是基于HTTP協(xié)議的,例如網(wǎng)站的圖片、CSS、JS等都是基于HTTP協(xié)議進(jìn)行傳輸?shù)摹?/li>
- HTTP協(xié)議是由從客戶機(jī)到服務(wù)器的請(qǐng)求(Request)和從服務(wù)器到客戶機(jī)的響應(yīng)(Response)進(jìn)行了約束和規(guī)范。
- 即HTTP協(xié)議主要由請(qǐng)求和響應(yīng)構(gòu)成。

常用請(qǐng)求方法 POST、GET、PUT、DELETE
請(qǐng)求報(bào)文
請(qǐng)求由客戶端發(fā)起,其規(guī)范格式為:請(qǐng)求行、請(qǐng)求頭、請(qǐng)求主體。

- 1、請(qǐng)求行

由請(qǐng)求方式、請(qǐng)求URL和協(xié)議版本構(gòu)成
- 2、請(qǐng)求頭
Host:localhost請(qǐng)求的主機(jī)
Cache-Control:max-age=0控制緩存
Accept:/ 接受的文檔MIME類型
User-Agent:很重要
Referer:從哪個(gè)URL跳轉(zhuǎn)過(guò)來(lái)的
Accept-Encoding:可接受的壓縮格式
- 3、請(qǐng)求主體
即傳遞給服務(wù)端的數(shù)據(jù)
注:當(dāng)以post形式提交表單的時(shí)候,請(qǐng)求頭里會(huì)設(shè)置
Content-Type: application/x-www-form-urlencoded,以get形式當(dāng)不需要
響應(yīng)報(bào)文
響應(yīng)由服務(wù)器發(fā)出,其規(guī)范格式為:狀態(tài)行、響應(yīng)頭、響應(yīng)主體。

- 1、狀態(tài)行

由協(xié)議版本號(hào)、狀態(tài)碼和狀態(tài)信息構(gòu)成
- 2、響應(yīng)頭
Date:響應(yīng)時(shí)間
Server:服務(wù)器信息
Content-Length:響應(yīng)主體長(zhǎng)度
Content-Type:響應(yīng)資源的MIME類型
MIME是標(biāo)識(shí)文件類型的,文件后綴并不能正確無(wú)誤的標(biāo)識(shí)文件的類型。
客戶端與服務(wù)器在進(jìn)行數(shù)據(jù)傳輸?shù)臅r(shí)候都是以字節(jié)形式進(jìn)行的,咱們可以理解成是以“文本形式”傳輸,這時(shí)瀏覽器就需要明確知道該怎么樣來(lái)解析這些文本形式的數(shù)據(jù),MIME就是明確告知瀏覽器該如何來(lái)處理。
- 3、響應(yīng)主體
- 即服務(wù)端返回給客戶端的內(nèi)容;
狀態(tài)碼
- 即服務(wù)端返回給客戶端的內(nèi)容;

常見的有200代表成功、304文檔未修改、403沒有權(quán)限、404未找到、500服務(wù)器錯(cuò)誤
調(diào)試工具
利用HTTP抓包工具在開發(fā)中可以幫我們進(jìn)行調(diào)試,常用抓包工具HttpWatch、Fiddler、Charles、FireBug等
瀏覽器插件:
Firebug、HttpWatch、chrome dev tools
代理軟件:
Charles、Fiddler