http協議請求,get和post的區別與聯絡
網路通訊中HTTP協議詳解
一、什麼是HTTP協議
HTTP協議全稱:HyperText Transfer Protocol 是一種超文字傳輸協議,通過URL(統一資源標示符),請求網路上遠端資源,格式是http://
HTTP協議在現在網際網路中使用最多的通訊協議,具有以下幾個優點:
1、簡單快速:客戶端向服務端傳送請求時,只需傳送請求方法和路徑。
在HTTP/1.1協議中,定義了GET、POST、HEAD、PUT、DELETE、TARCE、CONNECT、PATCH幾種請求方式,目 前使用最多的是GET和POST請求方式。
由於HTTP協議簡單,使得HTTP伺服器的程式規模小,因為通訊速度很快。
2、靈 活:HTTP協議允許傳輸任意型別的資料物件。正在傳輸的型別由Content-Type標記。
3、無連線:每次連結只處理一個請求,伺服器處理完客戶端的請求,並受到請求響應後即斷開連結,採用這種方式可以節省傳輸時間 和伺服器資源。
二、HTTP的通訊過程
客戶端通過傳送一個URL請求,伺服器根據請求查詢本地資料庫或者資源庫作出響應,並將資料返回給客戶端;
下面通過使用WireShark工具,對一個GET請求過程作出詳細解析:
1、請求階段:
HTTP協議規定:一個完整的由客戶端傳送給服務端的HTPP請求中包含
請求行:包含請求方法、請求資源路徑、HTTP協議版本
GET /chsi/images/2014/img01/jpg?v=20170110 HTTP/1.1\r\n
請求頭:包含對客戶端環境的描述、客戶端請求的主機地址等資訊
HOST:t1.chei.com.cn\r\n // 客戶端的想要訪問的伺服器地址或域名
User-Agent: Mozilla/5.0(Macintosh;Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 // (客戶 端的型別,客戶端開發環境等);
Accept: text/html; // 客戶端所能接收的資料型別
Accept-Language: zh-cn\r\n // 客戶端的語言環境
Accept-Encoding: gzip // 客戶端支援的資料壓縮格式;
2、響應階段
HTTP協議規定:一個完整的HTTP響應中包含以下內容
狀態行:包含HTTP協議版本、狀態碼、狀態英文名稱
HTTP/1.1 200 OK
響應頭:包含對伺服器的描述、對返回資料的描述
Server: nginx // 伺服器的型別
Content-Type:image/jpeg // 返回資料的型別
Content-Length:6560 // 返回資料的長度
Data:Wed,15 Mar 2017 02:56:23 GMT // 響應時間
實體內容:伺服器返回給客戶端的具體資料,該例項中是一張圖片資料:如下圖所示
三、GET和POST請求的區別
GET請求:在URL後面以?隔開,?前面是請求的地址或域名,後面是請求時的引數,多個引數之間用&隔開, 比如:http://chsi/image/2014/img01.jpg?v=20170110&t=test
POST請求:引數全部在請求體中;
兩者的區別主要是:
1、如果傳遞大量資料、比如大檔案的上傳下載,只能使用POST請求,GET請求的URL有長度限制,一般不超過1kb;
2、POST安全性較好,如果包含敏感資訊比如使用者登入的賬號密碼,使用POST請求;
3、如果涉及到資料的增加、修改、刪除,使用POST。