1. 程式人生 > >http請求和響應報文的架構

http請求和響應報文的架構

1.請求行(包含了請求方式、請求資源的路徑、遵循的協議及版本)

GET /news3/1.html HTTP/1.1

GET請求方式,在HTTP協議中一共規定了7種請求方式, 只用GETPOST

/news3/1.html請求資源的路徑

HTTP/1.1瀏覽器傳送請求時所使用的協議及版本

2.若干請求頭

http協議中請求頭非常多,下面列出常見的請求頭及其功能:

Accept: text/html,image/*   

-- 通知伺服器當前瀏覽器可以接受那些格式的資料

Accept-Charset: ISO-8859-1  

-- 瀏覽器可以接受的字符集編碼

Accept-Encoding: gzip,compress

-- 瀏覽器可以接受的壓縮格式

Host: www.tedu.cn:80  

-- 需要訪問的虛擬主機的名稱

Referer: http://www.tedu.cn/index.jsp

-- 這是和防盜鏈相關的頭,對當前資源的訪問來自哪個頁面的超連結

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) -- 客戶端的基本資訊

Cookie

-- cookie相關的頭

Connection: close/Keep-Alive

-- 是否繼續保持連線   

Date: Fri, 17 Feb 2017 18:23:51 GMT

-- 當前傳送請求的時間

3.請求實體內容

如果請求方式是

GET提交,請求實體中沒有資料
只有當請求方式為POST提交,並且請求中攜帶了資料, 請求實體才會有內容

4.GET請求和POST請求方式的區別

主要體現在請求引數傳送過程的不相同

GET提交: 通過請求行拼接引數將資料傳送給伺服器

1)通過位址列攜帶引數, 非常不安全

2)通過位址列傳送資料, 資料量不能太大(不能超過1kb或者是4kb);

POST提交: 通過請求實體內容攜帶引數, 資料不會顯示在位址列

1)引數不會出現位址列, 相對更安全

2)資料通過請求實體內容傳送, 資料量理論上沒有限制.

1.狀態行

HTTP/1.1 200 OK

HTTP/1.1:伺服器做出響應時遵循的協議及版本

200:狀態碼(一個三位的數字),

表示伺服器處理請求的結果如何,200表示伺服器成功的處理請求

   200: 伺服器成功的處理了請求

   302: location響應頭配合實現請求重定向.

   304: 表示通知瀏覽器使用本地快取

   404: 表示客戶端請求的資源不存在!

   500: 表示伺服器端發生了錯誤!

OK:描述短語, 也是用來表示伺服器處理請求的結果。

2.響應頭

http協議中響應頭頭非常多,下面列出常見的響應頭及其功能:

Location: http://www.tedu.cn/index.jsp  

-- 配合302使用實現請求重定向

Server:apache tomcat

-- 伺服器的基本資訊

Content-Encoding: gzip  

-- 伺服器傳送的資料使用的壓縮格式

Content-Length: 80

-- 伺服器傳送的資料的大小

Content-Type: text/html; charset=GB2312

-- 伺服器傳送的資料是什麼格式的,如果是字元格式的資料,則還可以通知伺服器傳送的資料使用的是什麼編碼,瀏覽器會根據這個頭指定的編碼決定使用哪個編碼來開啟收到的資料

Refresh: 1;url=http://www.tedu.cn

-- 定時重新整理相關的頭,通知瀏覽器,過幾秒後自動重新整理訪問哪個地址

Content-Disposition: attachment;filename=aaa.zip

-- 通知瀏覽器以附件的形式打開發送過去的資料,是和檔案下載相關的頭

Set-Cookie:SS=Q0=5Lb_nQ; path=/search

-- Cookie相關的頭

Expires: -1

-- 通知瀏覽器是否快取

Cache-Control: no-cache  

-- 通知瀏覽器是否快取

Pragma: no-cache   

-- 通知瀏覽器是否快取

-- 之所以一個功能有三個頭,是因為歷史原因.所以為了網頁的相容性考慮,通常這三個頭要一起使用

Connection: close/Keep-Alive   

-- 是否保持連線

Date: Fri, 17 Feb 2017 18:24:11 GMT  

-- 響應時的時間