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通訊過程 - 請求瀏覽器
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 // 客戶端支持的數據壓縮格式日誌
===========htm
HTTP通訊過程 - 響應
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1 // 服務器的類型
Content-Type: image/jpeg // 返回數據的類型
Content-Length: 56811 // 返回數據的長度
Date: Mon, 23 Jun 2014 12:54:52 GMT // 響應的時間
------------------------------------------------------------------------------------------
200(狀態碼) OK
2xx成功
4xx 客戶端的錯誤
5xx 服務器端的錯誤
------------------------------------------------------------------------------------------