get,post 區別,HTTP通訊

GET & POST
GET
      1.GET 的本質是"得"
      2.從服務器拿數據,效率更高
  3.從數學的角度來說,GET 的結果是"冪等"的
  4.GET請求可以被緩存
  5.在 HTTP 協議定義中,沒有對GET請求的數據大小限制,不過由於瀏覽器不一樣,通常限制在 2~8K 之間
  6.全部的參數包裝在URL中,而且服務器的訪問日誌會記錄,不要傳遞敏感信息
  參數格式? 在資源路徑末尾添加?表示追加參數 變量名=變量值 每個變量及值按照"變量名=變量值"方式設定,不能包含空格或者中文 等特殊符號
                &  多個參數使用&鏈接
POST
  1.POST 的本質是"給"
  2.向服務器發送數據,也能夠得到服務器處理以後的結果,效率不如GET
  3.POST請求不能被緩存,post再次提交數據,頁面會有提示:是否發送數據.....
  POST提交數據比較大,大小靠服務器的設定值限制,PHP一般限定 2M
  URL中,只有資源路徑,但不包含參數,服務器日誌不會記錄參數,相對更安全
  參數被包裝成二進制的數據體,格式與GET基本一致,只是不包含?
  全部設計用戶隱私的數據(密碼,銀行卡號)必定記住使用POST方式傳遞
 -------------------------------------------------------------------------------------html

HTTP通訊過程 - 請求瀏覽器

nHTTP協議規定:1個完整的由客戶端發給服務器的HTTP請求中包含如下內容
 請求行:包含了請求方法、請求資源路徑、HTTP協議版本

GET /MJServer/resources/images/1.jpg HTTP/1.1緩存

 

 請求頭:包含了對客戶端的環境描述、客戶端請求的主機地址等信息

Host: 192.168.1.105:8080   // 客戶端想訪問的服務器主機地址安全

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9) Firefox/30.0服務器

// 客戶端的類型,客戶端的軟件環境post

Accept: text/html, */*   // 客戶端所能接收的數據類型spa

Accept-Language: zh-cn   // 客戶端的語言環境設計

Accept-Encoding: gzip   // 客戶端支持的數據壓縮格式日誌

 

p請求體:客戶端發給服務器的具體數據,好比文件數據

===========htm

HTTP通訊過程 - 響應

n客戶端向服務器發送請求,服務器應當作出響應,即返回數據給客戶端
nHTTP協議規定:1個完整的HTTP響應中包含如下內容
p狀態行:包含了HTTP協議版本、狀態碼、狀態英文名稱

HTTP/1.1 200 OK

 

p響應頭:包含了對服務器的描述、對返回數據的描述

Server: Apache-Coyote/1.1   // 服務器的類型

Content-Type: image/jpeg   // 返回數據的類型

Content-Length: 56811   // 返回數據的長度

Date: Mon, 23 Jun 2014 12:54:52 GMT  // 響應的時間

 

p實體內容:服務器返回給客戶端的具體數據,好比文件數據


 ------------------------------------------------------------------------------------------

200(狀態碼) OK
2xx成功

4xx 客戶端的錯誤
5xx 服務器端的錯誤

 ------------------------------------------------------------------------------------------

相關文章
相關標籤/搜索