指服務器和客戶端之間進行通信是的約束和規范,客戶端與服務端的數據交互不是雜亂無章的,需要遵照一定的規范進行。
常見協議
HTTP,HTTPS超文本傳輸協議
FTP文件傳輸協議
SMTP簡單郵件傳輸協議
- HTTP協議
- 即超文本傳輸協議,網站是基于HTTP協議的,例如網站的圖片、CSS、JS等都是基于HTTP協議進行傳輸的。
- HTTP協議是由從客戶機到服務器的請求(Request)和從服務器到客戶機的響應(Response)進行了約束和規范。
- 即HTTP協議主要由請求和響應構成。
常用請求方法 POST、GET、PUT、DELETE
請求報文
請求由客戶端發起,其規范格式為:請求行、請求頭、請求主體。
- 1、請求行
由請求方式、請求URL和協議版本構成
- 2、請求頭
Host:localhost請求的主機
Cache-Control:max-age=0控制緩存
Accept:/ 接受的文檔MIME類型
User-Agent:很重要
Referer:從哪個URL跳轉過來的
Accept-Encoding:可接受的壓縮格式
- 3、請求主體
即傳遞給服務端的數據
注:當以post形式提交表單的時候,請求頭里會設置
Content-Type: application/x-www-form-urlencoded,以get形式當不需要
響應報文
響應由服務器發出,其規范格式為:狀態行、響應頭、響應主體。
- 1、狀態行
由協議版本號、狀態碼和狀態信息構成
- 2、響應頭
Date:響應時間
Server:服務器信息
Content-Length:響應主體長度
Content-Type:響應資源的MIME類型
MIME是標識文件類型的,文件后綴并不能正確無誤的標識文件的類型。
客戶端與服務器在進行數據傳輸的時候都是以字節形式進行的,咱們可以理解成是以“文本形式”傳輸,這時瀏覽器就需要明確知道該怎么樣來解析這些文本形式的數據,MIME就是明確告知瀏覽器該如何來處理。
- 3、響應主體
- 即服務端返回給客戶端的內容;
狀態碼
- 即服務端返回給客戶端的內容;
常見的有200代表成功、304文檔未修改、403沒有權限、404未找到、500服務器錯誤
調試工具
利用HTTP抓包工具在開發中可以幫我們進行調試,常用抓包工具HttpWatch、Fiddler、Charles、FireBug等
瀏覽器插件:
Firebug、HttpWatch、chrome dev tools
代理軟件:
Charles、Fiddler