HTTP協議GET和POST的區別

HTTP經常使用的請求方式是GET和POST

         GET方式:是以實體的方式獲得由請求URI所指定資源的信息,若是請求URI只是一個數據產生過程,那麼最終要在響應實體中返回的是處理過程的結果所指向的資源,而不是處理過程的描述。數據庫

         POST方式:用來向目的服務器發出請求,要求它接受被附在請求後的實體,並把它看成請求隊列中請求URI所指定資源的附加新子項安全

Post被設計成用統一的方法實現下列功能:

         1:對現有資源的解釋;服務器

         2:向電子公告欄、新聞組、郵件列表或相似討論組發信息;post

         3:提交數據塊;設計

         4:經過附加操做來擴展數據庫 。隊列

         從上面描述能夠看出,Get是向服務器發索取數據的一種請求;而Post是向服務器提交數據的一種請求,要提交的數據位於信息頭後面的實體中。資源

GET與POST方法有如下區別:

         (1) 在客戶端,Get方式在經過URL提交數據,數據在URL中能夠看到;POST方式,數據放置在HTML HEADER內提交。get

         (2)   GET方式提交的數據最多隻能有1024字節,而POST則沒有此限制。擴展

         (3) 安全性問題。正如在(1)中提到,使用 Get 的時候,參數會顯示在地址欄上,而 Post 不會。因此,若是這些數據是中文數據並且是非敏感數據,那麼使用 get;若是用戶輸入的數據不是中文字符並且包含敏感數據,那麼仍是使用 post爲好。請求

         (4) 安全的和冪等的。所謂安全的意味着該操做用於獲取信息而非修改信息。冪等的意味着對同一 URL 的多個請求應該返回一樣的結果。完整的定義並不像看起來那樣嚴格。換句話說,GET 請求通常不該產生反作用。從根本上講,其目標是當用戶打開一個連接時,她能夠確信從自身的角度來看沒有改變資源。好比,新聞站點的頭版不斷更新。雖然第二次請求會返回不一樣的一批新聞,該操做仍然被認爲是安全的和冪等的,由於它老是返回當前的新聞。反之亦然。POST 請求就不那麼輕鬆了。POST 表示可能改變服務器上的資源的請求。仍然以新聞站點爲例,讀者對文章的註解應該經過 POST 請求實現,由於在註解提交以後站點已經不一樣了(比方說文章下面出現一條註解)。

相關文章
相關標籤/搜索