一.定義
http即:超文本傳輸協議。該協議是詳細規定了瀏覽器和萬維網網絡服務器之間相互通訊的規則的。
也就是說,HTTP就是一個通訊規則,它規定了客服端向服務端發送請求內容的格式以便服務器能識別;也規定了服務器向客服端返回的內容格式,以便客服端可以識別。也就是,客戶端發送給服務端的格式叫「請求協議」,服務端發送給客服端的格式叫「響應協議」。
http協議的兩大特色:
1.HTTP超文本傳輸協議是基於請求/響應模式的(請求協議、響應協議);
2.HTTP是無狀態協議。所謂無狀態協議就是說,同一個用戶連續屢次訪問服務器,服務器是不知道這些請求是由同一個用戶發出的,服務端沒收到一個請求就響應一次。因此,後面引進了cookie和session概念。
3.URL:統一資源定位符,就是一個網站地址:協議名://域名:端口號/路徑,例如:http://zhidao.baidu.com/question/557112227.html
二.請求協議html
請求協議的格式以下: 請求行;//請求方法 請求路徑 協議和協議版本,例如:GEThttps://blog.51cto.com/10836356/2113800 HTTP/1.1 請求頭信息;//請求頭名稱;請求頭內容,爲鍵值對格式,例如:Host: blog.51cto.com 空行;//用來與請求主體隔開 請求體。//請求的參數,GET沒有請求體,只有POST纔有請求體
實例:
瀏覽器發送給服務器的內容就是這個格式的,若是不是這個格式,服務器將沒法解析。在HTTP協議中,請求方法有不少種,常見的是GET和POST兩種。
1.GET請求
GET是HTTP的默認請求方法,其特色:
沒有請求體
URL字節數據必須在1KB之內
GET請求數據會暴露在瀏覽器的URL中,不安全
GET請求經常使用的操做:
能夠在瀏覽器的地址欄中直接給出URL,那麼必定是GET方法;
點擊頁面中的超連接,也必定是GET方式;
提交表單時,沒有進行設置也必定是GET方式(默認爲GET方式,但能夠進行設置爲爲他方式的)
格式及各參數說明
(下圖只是用來解釋參數,與上圖不符合,來自網絡)
2.POST請求
有請求體
URL字節數據大小沒有限制
POST請求數據不會暴露在瀏覽器的URL中
請求體中若是有中文,會使用URL編碼(爲了防止請求體內容與HTTP格式相沖突)
POST請求有請求體,GET請求則無。
(下圖只是用來解釋參數,與上圖不符合,來自網絡)
三.響應請求
1.格式瀏覽器
# http響應協議格式: 響應行;//協議和協議版本 狀態碼,例如:HTTP/1.1 200 OK 響應頭信息;//響應頭名稱;響應頭內容,爲鍵值對格式,例如:Content-Type: text/html; charset=UTF-8 空行;//用來與響應主體隔開 響應體。//響應的內容(發給客戶端的)
2.響應內容是服務器發給客戶端的,瀏覽器會根據響應內容進行解析並在界面上進行展現出來。遇到相似於<img scr=」...」>標籤的,會從新開一個新的進程加載,因此咱們在瀏覽器上常常看到有些文字內容會快速加載出來,而後纔會一張張加載出圖片。
3.響應內容以下圖所示:
對應的參數說明:
(下圖只是用來解釋參數,與上圖不符合,來自網絡)
4.響應狀態碼說明
HTTP狀態碼由三個十進制數字組成,第一個十進制數字定義了狀態碼的類型,後兩個數字沒有分類的做用。HTTP狀態碼共分爲5種類型:
5.其餘響應頭
告訴瀏覽器不要緩存的響應頭:
Expires:-1;
Cache-Control:no-cache;
Pragma:no-cache;
Refresh:3;url=http://×××w.baidu.com
自動刷新響應頭,如瀏覽器會在3秒後自動刷新http://×××w.baidu.com網址緩存