1. 程式人生 > 其它 >介紹HTTP協議的請求與響應

介紹HTTP協議的請求與響應

0.HTTP是什麼

超文字傳輸協議(HyperText Transfer Protocol)

1.http協議的位置

 

2.Http協議的組成

 

3. Http請求

*html檔案中表單標籤<form>的method屬性:post和get的區別

Get:提交時在位址列顯示提交內容

Post:位址列看不到內容,但http請求了(可以在IE中看抓包)

編輯一個form.html的表單頁面,如下。

 

 

點選提交按鈕,在IE中httpcatch的抓包如下。

 

 

1)請求行

請求方式:POST、GET

請求的資源:/DemoEE/form.html

協議版本:HTTP/1.1(一般都是)

HTTP/1.0,傳送請求,建立一次連線,獲得一個web資源,連線斷開。

HTTP/1.1,傳送請求,建立一次連線,獲得多個web資源,保持連線。

2)請求頭

請求頭是客戶端傳送給伺服器端的一些資訊,使用鍵值對錶示key:value

 

 

3)請求體

當請求方式是post的時,請求體有請求的引數,格式如下:

username=zhangsan&password=123

如果請求方式為get,那麼請求引數不會出現在請求體中,會拼接在url地址後面

http://localhost:8080...?username=zhangsan&password=123

*能看到請求體,提交方式就是post,看不到就是get;get的請求資料在請求行中;

*判斷客戶端是什麼瀏覽器,看http請求頭User-Agent裡的瀏覽器:MSIE,FireFox等

 

4. Http響應

 

 

1)響應行

Http協議

狀態碼:

常用的狀態碼如下:

200 :請求成功。

302 :請求重定向。

304 :請求資源沒有改變,訪問本地快取。

404 :請求資源不存在。通常是使用者路徑編寫錯誤,也可能是伺服器資源已刪除。

500 :伺服器內部錯誤。通常程式拋異常。

狀態資訊:狀態資訊是根據狀態碼變化而變化的

*302重定向:訪問一個網站,但跳到了另一個網站;

304拿本地快取:訪問過某網站,資源存到本地,若下次訪問,資源沒改過,就訪問本地的。

404:一般是客戶端錯誤,地址輸錯

500:一般是服務端錯誤,程式碼錯誤

*304中判斷資源是否被修改過?

判斷:Last-Modified最後修改時間與If-Modified-Since上一次的修改時間 作比較,一樣就是沒修改;If-Modified-Since比Last-Modified時間早,就是修改過了

 

2)響應頭

響應也都是鍵值對形式,伺服器端將資訊以鍵值對的形式返回給客戶端

 

3)響應體

響應體是伺服器回寫給客戶端的頁面正文,瀏覽器將正文載入到記憶體,然後解析渲染,顯示頁面內容