POST和GET

GET和POST本質上就是TCP鏈接,並無差別。

(1). 從功能上講,GET一般用來從服務器上獲取資源,POST一般用來更新服務器上的資源;

(2). 從REST服務角度上說,GET是冪等的,即讀取同一個資源,總是得到相同的數據,而POST不是冪等的,因爲每次請求對資源的改變並不是相同的;進一步地,GET不會改變服務器上的資源,而POST會對服務器資源進行改變;

(3). 從請求參數形式上看,GET請求的數據會附在URL之後,即將請求數據放置在HTTP報文的 請求頭 中,以?分割URL和傳輸數據,參數之間以&相連。特別地,如果數據是英文字母/數字,原樣發送;否則,會將其編碼爲 application/x-www-form-urlencoded MIME 字符串(如果是空格,轉換爲+,如果是中文/其他字符,則直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX爲該符號以16進製表示的ASCII);而POST請求會把提交的數據則放置在是HTTP請求報文的 請求體 中。

(4). 就安全性而言,POST的安全性要比GET的安全性高,因爲GET請求提交的數據將明文出現在URL上,而且POST請求參數則被包裝到請求體中,相對更安全。

(5). 從請求的大小看,GET請求的長度受限於瀏覽器或服務器對URL長度的限制,允許發送的數據量比較小,而POST請求則是沒有大小限制的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章