1 HTTP協議特色
1)客戶端->服務端(請求request)有三部份
a)請求行html
b)請求頭java
c)請求的內容,若是沒有,就是空白字符 apache
2)服務端->客戶端(響應response)有三部瀏覽器
a)響應行緩存
b)響應頭tomcat
c)響應的內容,若是沒有,就是空白字符 服務器
*2 HTTP請求頭和響應頭含義
1)請求(客戶端->服務端[request])
GET(請求的方式) /books/java.html(請求的目標資源) HTTP/1.1(請求採用的協議和版本號)優化
Accept: */*(客戶端能接收的資源類型)編碼
Accept-Language: en-us(客戶端接收的語言類型)url
Connection: Keep-Alive(維護客戶端和服務端的鏈接關係)
Host: localhost:8080(鏈接的目標主機和端口號)
Referer: http://localhost/links.asp(歷來於哪裏)
User-Agent: Mozilla/4.0(客戶端版本號的名字)
Accept-Encoding: gzip, deflate(客戶端能接收的壓縮數據的類型)
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT(緩存時間)
Cookie(客戶端暫存服務端的信息)
Date: Tue, 11 Jul 2000 18:23:51 GMT(客戶端請求服務端的時間)
2)響應(服務端->客戶端[response])
HTTP/1.1(響應採用的協議和版本號) 200(狀態碼) OK(描述信息)
302(客戶端請求服務端,但服務端沒有對應的資源,服務端要客戶端再次請求找其它的服務端,即客戶端二次請求,重定向)
307(客戶端請求服務端,但服務端沒有對應的資源,服務端自行再次請求找其它的服務端,即客戶端一次請求,轉發)
304(客戶端請求服務端,此時客戶端緩存中有,無需再從服務端下載新的內容,服務端叫客戶端自行找緩存,優化)
500(客戶端請求的資源,服務端存在,但在執行時出錯)
Location: http://www.baidu.com(服務端須要客戶端訪問的頁面路徑)
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(服務端要求客戶端1秒鐘後,刷新,而後訪問指定的頁面路徑)
Content-Disposition: attachment; filename=aaa.zip(服務端要求客戶端如下載文件的方式打開該文件)
Transfer-Encoding: chunked(分塊傳遞數據到客戶端)
Set-Cookie:SS=Q0=5Lb_nQ; path=/search(服務端發送到客戶端的暫存數據)
Expires: -1//3種(服務端禁止客戶端緩存頁面數據)
Cache-Control: no-cache(服務端禁止客戶端緩存頁面數據)
Pragma: no-cache(服務端禁止客戶端緩存頁面數據)
Connection: close(1.0)/(1.1)Keep-Alive(維護客戶端和服務端的鏈接關係)
Date: Tue, 11 Jul 2000 18:23:51 GMT(服務端響應客戶端的時間)
3)總結
想讓瀏覽器有何種行爲,服務端只能經過響應頭的方式來設置
想讓服務器知道何種行爲,瀏覽器只能經過請求頭的方式來設置