1. 程式人生 > >get 與 post 區別

get 與 post 區別

Http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETE。URL全稱是資源描述符,我們可以這樣認為:一個URL地址,它用於描述一個網路上的資源,而HTTP中的GET,POST,PUT,DELETE就對應著對這個資源的查,改,增,刪4個操作。到這裡,大家應該有個大概的瞭解了,GET一般用於獲取/查詢資源資訊,而POST一般用於更新資源資訊。

 

1,http中,GET用於資訊獲取,而且是安全的和冪等的。

(1).所謂安全的意味著該操作用於獲取資訊而非修改資訊。換句話說,GET 請求一般不應產生副作用。就是說,它僅僅是獲取資源資訊,就像資料庫查詢一樣,不會修改,增加資料,不會影響資源的狀態。

* 注意:這裡安全的含義僅僅是指是非修改資訊。

(2).冪等的意味著對同一URL的多個請求應該返回同樣的結果。

2,http中,POST是用於修改伺服器上的資源的請求。

 

說完原理性的問題,我們從表面上來看看GET和POST的區別:

1. get是從伺服器上獲取資料,post是向伺服器傳送資料。 
get 和 post只是一種傳遞資料的方式,get也可以把資料傳到伺服器,他們的本質都是傳送請求和接收結果。只是組織格式和資料量上面有差別,http協議裡面有介紹
  2. get是把引數資料佇列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。使用者看不到這個過程。 
因為get設計成傳輸小資料,而且最好是不修改伺服器的資料,所以瀏覽器一般都在位址列裡面可以看到,但post一般都用來傳遞大資料,或比較隱私的資料,所以在位址列看不到,能不能看到不是協議規定,是瀏覽器規定的。
3. 對於get方式,伺服器端用Request.QueryString獲取變數的值,對於post方式,伺服器端用Request.Form獲取提交的資料。 
沒明白,怎麼獲得變數和你的伺服器有關,和get或post無關,伺服器都對這些請求做了封裝
  4. get傳送的資料量較小,不能大於2KB。post傳送的資料量較大,一般被預設為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。 
post基本沒有限制,我想大家都上傳過檔案,都是用post方式的。只不過要修改form裡面的那個type引數
  5. get安全性非常低,post安全性較高。 
如果沒有加密,他們安全級別都是一樣的,隨便一個監聽器都可以把所有的資料監聽到。
---------------------
作者:qq_33417547
來源:CSDN
原文:https://blog.csdn.net/qq_33417547/article/details/69055518
版權宣告:本文為博主原創文章,轉載請附上博文連結!