GET與POST方法的區別

HTTP請求:GET與POST方法的區別

HTTP 定義了與服務器交互的不一樣方法,最基本的方法是 GET 和 POST。事實上 GET 適用於多數請求,而保留 POST 僅用於更新站點。根據 HTTP 規範,GET 用於信息獲取,並且應該是 安全的和 冪等的。所謂安全的意味着該操做用於獲取信息而非修改信息。換句話說,GET 請求通常不該產生反作用。冪等的意味着對同一 URL 的多個請求應該返回一樣的結果。完整的定義並不像看起來那樣嚴格。從根本上講,其目標是當用戶打開一個連接時,她能夠確信從自身的角度來看沒有改變資源。好比,新聞站點的頭版不斷更新。雖然第二次請求會返回不一樣的一批新聞,該操做仍然被認爲是安全的和冪等的,由於它老是返回當前的新聞。反之亦然。POST 請求就不那麼輕鬆了。POST 表示可能改變服務器上的資源的請求。仍然以新聞站點爲例,讀者對文章的註解應該經過 POST 請求實現,由於在註解提交以後站點已經不一樣了(比方說文章下面出現一條註解);
在FORM提交的時候,若是不指定Method,則默認爲GET請求,Form中提交的數據將會附加在url以後,以?分開與url分開。字母數字字符原樣發送,但空格轉換爲「 「號,其它符號轉換爲%XX,其中XX爲該符號以16進製表示的ASCII(或ISO Latin-1)值。GET請求請提交的數據放置在HTTP請求協議頭中,而POST提交的數據則放在實體數據中;
GET方式提交的數據最多隻能有1024字節,而POST則沒有此限制。

get和post方法的不一樣 在B/S應用程序中,前臺與後臺的數據交互,都是經過HTML中Form表單完成的。Form提供了兩種數據傳輸的方式——get和post。雖然它們都是數據的提交方式,可是在實際傳輸時確有很大的不一樣,而且可能會對數據產生嚴重的影響。雖然爲了方便的獲得變量值,Web容器已經屏蔽了兩者的一些差別,可是瞭解兩者的差別在之後的編程也會頗有幫助的。
Form中的get和post方法,在數據傳輸過程當中分別對應了HTTP協議中的GET和POST方法。兩者主要區別以下:
一、Get是用來從服務器上得到數據,而Post是用來向服務器上傳遞數據。

二、Get將表單中數據的按照variable=value的形式,添加到action所指向的URL後面,而且二者使用「?」鏈接,而各個變量之間使用「&」鏈接;Post是將表單中的數據放在form的數據體中,按照變量和值相對應的方式,傳遞到action所指向URL。

三、Get是不安全的,由於在傳輸過程,數據被放在請求的URL中,而現在現有的不少服務器、代理服務器或者用戶代理都會將請求URL記錄到日誌文件中,而後放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用戶也能夠在瀏覽器上直接看到提交的數據,一些系統內部消息將會一同顯示在用戶面前。Post的全部操做對用戶來講都是不可見的。

四、Get傳輸的數據量小,這主要是由於受URL長度限制;而Post能夠傳輸大量的數據,因此在上傳文件只能使用Post(固然還有一個緣由,將在後面的提到)。

五、Get限制Form表單的數據集的值必須爲ASCII字符;而Post支持整個ISO10646字符集。

六、Get是Form的默認方法。

GET 和 POST 的數據格式都是同樣的:
GET 支持的最大字節限制是 2048 Bytes
POST 支持的最大字節限制是 2GB
編程

相關文章
相關標籤/搜索