1. HTTP協定特點
1)client->伺服器(要求request)有三個部分
a)請求行
b)請求頭
c)請求的内容,假設沒有。就是空白字元
2)服務端->client(響應response)有三部份
a)響應行
b)響應頭
c)響應的内容,假設沒有,就是空白字元
2 HTTP請求頭和響應頭含義
1)請求(client->服務端[request])
GET(請求的方式) /books/java.html(請求的目标資源) HTTP/1.1(請求採用的協定和版本)
Accept: */*(client能接收的資源類型)
Accept-Language: en-us(client接收的語言類型)
Connection: Keep-Alive(維護client和服務端的連接配接關系)
Host: localhost:8080(連接配接的目标主機和port号)
Referer: http://localhost/links.asp(從來于哪裡)
User-Agent: Mozilla/4.0(client版本的名字)
Accept-Encoding: gzip, deflate(client能接收的壓縮資料的類型)
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT(緩存時間)
Cookie(client暫存服務端的資訊)
Date: Tue, 11 Jul 2000 18:23:51 GMT(client請求服務端的時間)
2)響應(服務端->client[response])
HTTP/1.1(響應採用的協定和版本) 200(狀态碼) OK(描寫叙述資訊)
302(client請求服務端。但服務端沒有相應的資源,服務端要client再次請求找其他的服務端,即client二次請求。重定向)
307(client請求服務端,但服務端沒有相應的資源。服務端自行再次請求找其他的服務端,即client一次請求,轉發)
304(client請求服務端。此時client緩存中有。無需再從服務端下載下傳新的内容,服務端叫client自行找緩存,優化)
500(client請求的資源,服務端存在,但在運作時出錯)
404請求的資源找不到
Location: http://www.baidu.com(服務端須要client訪問的頁面路徑)
Server:apache tomcat(服務端的Web服務端名)
Content-Encoding: gzip(服務端可以發送壓縮編碼類型)
Content-Length: 80(服務端發送的壓縮資料的長度)
Content-Language: zh-cn(服務端發送的語言類型)
Content-Type: text/html; charset=GB2312(服務端發送的類型及採用的編碼方式)
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT(服務端對該資源最後改動的時間)
Refresh: 1;url=http://www.it315.org(服務端要求client1秒鐘後,重新整理。然後訪問指定的頁面路徑)
Content-Disposition: attachment; filename=aaa.zip(服務端要求client下面載檔案的方式打開該檔案)
Transfer-Encoding: chunked(分塊傳遞資料到client)
Set-Cookie:SS=Q0=5Lb_nQ; path=/search(服務端發送到client的暫存資料)
Expires: -1//3種(服務端禁止client緩存頁面資料)
Cache-Control: no-cache(服務端禁止client緩存頁面資料)
Pragma: no-cache(服務端禁止client緩存頁面資料)
Connection: close(1.0)/(1.1)Keep-Alive(維護client和服務端的連接配接關系)
Date: Tue, 11 Jul 2000 18:23:51 GMT(服務端響應client的時間)
3)總結
想讓浏覽器有何種行為,服務端僅僅能通過響應頭的方式來設定
想讓server知道何種行為,浏覽器僅僅能通過請求頭的方式來設定
3.經常使用的送出方式
a)GET
特點:請求參數不管多少,都會根着URL後傳遞到服務端。以明文方式傳遞
GET方式傳遞有限制大小。基本的是位址欄的資料有限制
GET方式傳遞資訊不安全
b)POST
特點:
請求參數不管多少,都不會根着URL後傳遞到服務端。而是以參數形式在請求體中傳遞到服務端
POST方式傳遞無限制大小
POST方式傳遞資訊相對安全
4.浏覽器與server的互動圖
