轉載自:http://blog.csdn.net/liujiahan629629/article/details/17585899
看過很多人寫GET和POST之間的區別,爲什麼這麼多人關注它們呢?因爲它們是最常用的兩種HTTP方法,之間有很多相同之處,也存在非常大的不同。首先了解一下HTTP方法:
什麼是HTTP? 超文本傳輸協議(HTTP)的實際目的是保證客戶機與服務器之間的通訊,即請求-應答協議。web瀏覽器可能是客戶端,而計算機上的應用程序也可能是服務端。舉例:客戶端(瀏覽器)向服務器提交HTTP 請求;服務器向客戶端返回響應。響應包含關於請求的狀態信息以及可能被請求的內容。
而GET和POST正是此功能最常用的兩種方法:1,GET- 從指定的資源請求數據;2,POST- 向指定的資源提交被處理的數據,其實就是這兩個英文的翻譯吧!
看看這兩種方法的比較:
|
GET |
POST |
後退按鈕/刷新 |
無害 |
數據會被重新提交(瀏覽器應該告知用戶數據會被重新提交)。 |
書籤 |
可收藏爲書籤 |
不可收藏爲書籤 |
緩存 |
能被緩存 |
不能緩存 |
編碼類型 |
application/x-www-form-urlencoded |
application/x-www-form-urlencoded 或 multipart/form-data。爲二進制數據使用多重編碼。 |
歷史 |
參數保留在瀏覽器歷史中。 |
參數不會保存在瀏覽器歷史中。 |
對數據長度的限制 |
是的。當發送數據時,GET 方法向 URL 添加數據;URL 的長度是受限制的(URL 的最大長度是 2048 個字符)。 |
無限制。 |
對數據類型的限制 |
只允許 ASCII 字符。 |
沒有限制。也允許二進制數據。 |
安全性 |
與 POST 相比,GET 的安全性較差,因爲所發送的數據是 URL 的一部分。 在發送密碼或其他敏感信息時絕不要使用GET ! |
POST 比 GET 更安全,因爲參數不會被保存在瀏覽器歷史或 web 服務器日誌中。 |
可見性 |
數據在 URL 中對所有人都是可見的。 |
數據不會顯示在 URL 中。 |
在JQuery中語法 |
$.get(URL,callback);
|
$.post(URL,data,callback); |
例子:GET:
- <span style="font-size:18px;"><!DOCTYPE html>
- <html>
- <head>
- <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
- <script>
- $(document).ready(function(){
- $("button").click(function(){
- $.get("/example/jquery/demo_test.asp",function(data,status){
- alert("數據:" + data + "\n狀態:" + status);
- });
- });
- });
- </script>
- </head>
- <body>
- <button>向頁面發送 HTTP GET 請求,然後獲得返回的結果</button>
- </body>
- </html>
- </span>
POST:
- <span style="font-size:18px;"><!DOCTYPE html>
- <html>
- <head>
- <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
- </script>
- <script>
- $(document).ready(function(){
- $("button").click(function(){
- $.post("/example/jquery/demo_test_post.asp",
- {
- name:"Donald Duck",
- city:"Duckburg"
- },
- function(data,status){
- alert("數據:" + data + "\n狀態:" + status);
- });
- });
- });
- </script>
- </head>
- <body>
- <button>向頁面發送 HTTP POST 請求,並獲得返回的結果</button>
- </body>
- </html>
- </span>
綜上爲簡單的GET和POST之間的恩怨訴說,很多之間的區別必須等我們實踐過,對比過,才能體會的更深,這裏只是提前知道一下!更多的還需要我們在項目中時間來體會的更多!