認識HTTP

什麼是HTTP:http是一個應用層面向對象的協議,是一個基於請求響應模式,無狀態的,應用層的協議,常基於TCP鏈接方式。目前有HTTP1.0,HTTP1.1,區別是http1.0一次請求,立即斷開連接,所以一個連接是只可以獲取到一個web資源,而http1.1請求後會保持連接,一個連接可以獲取多個web資源。目前大部分採用的是http1.1.


HTTP請求: 

   一個http請求:一個請求行,若干請求頭,一個空行,請求實體內容

 一個請求行:
GET /books/java.html HTTP/1.1
請求方式:一共有七種POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT,但是我們通常使用的只有兩種GET POST
GET:在傳輸請求參數時,請求參數賦值在地址欄中,大小不超過1KB,安全性比較低
POST:在傳輸請求參數時,請求參數會在請求的實體內容中進行傳輸,大小沒有限制,安全性比較高

請求的資源地址:要訪問的資源的uri地址 所遵循的協議


若干請求頭:
Accept: text/html,image/*   --當前客戶端可以接受的數據類型 
Accept-Charset: ISO-8859-1--當前客戶端可以接受的文本的編碼類型
Accept-Encoding: gzip,compress  --當前客戶端可以接受的數據的壓縮格式
Accept-Language: en-us,zh-cn   --表明當前客戶端可以接受的語言環境
Host: www.it315.org:80-- 當前請求要訪問的主機名稱
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT -- 和緩存相關的頭
Referer: http://www.it315.org/index.jsp --- 和防盜鏈相關的頭
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) -- 瀏覽器的基本信息
Cookie  --和cookie相關的頭
Connection: close/Keep-Alive -- 是否要繼續保持連接
Date: Tue, 11 Jul 2000 18:23:51 GMT -- 發送請求的時間

一行空行

請求的實體內容:存放着要發送給服務器的具體的數據,如果是post提交,請求參數就是在實體內容中傳輸過去的

  

     HTTP響應:一個狀態行,若干響應頭,一個空行,響應的實體內容

狀態行:遵循的http協議 版本,響應狀態100-999不同數據不同意義,通常是200——>響應結束正常,302——>重定向,304,307——>使用緩存,404——>找不到資源,500——>服務器出錯,描述信息

若干響應頭
!!!Location: http://www.it315.org/index.jsp  --配合302狀態碼實現重定向功能
Server:apache tomcat -- 服務器的基本信息
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 --定時刷新的頭,隔了多長時間後自動刷新到哪個地址
!!!!Content-Disposition: attachment;filename=aaa.zip --和文件下載相關的頭
Transfer-Encoding: chunked  --表明當前數據發送的方式,是一次發送所有,還是分多個數據包發送
!!!Set-Cookie:SS=Q0=5Lb_nQ; path=/search -- 和cookie相關的頭
ETag: W/"83794-1208174400000" -- 和緩存相關的頭
!!Expires: -1 -- 控制瀏覽器是否緩存資源的頭,如果給一個時間,則表明要緩存資源到指定的時間,如果給一個0或-1表明禁止緩存當前資源
!!Cache-Control: no-cache  --控制瀏覽器是否緩存資源
!!Pragma: no-cache   -- 控制瀏覽器是否緩存資源
--以上三個頭都可以控制瀏覽器是否緩存資源,之所以一個功能有三個頭,是因爲歷史原因造成的,歷史上不同瀏覽器支持的頭不同,所以我們通常,這三個頭一起使用。
Connection: close/Keep-Alive --是否繼續保持鏈接  
Date: Tue, 11 Jul 2000 18:23:51 GMT ---發出響應的時間


一個空行

響應的實體內容:服務器發送的要瀏覽器解析顯示的內容就是通過響應的實體內容發送過來的




   

                 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章