get和post的區別是什麼?

2021-10-24 01:36:45 字數 1649 閱讀 1377

參考:get 和 post 究竟有什麼區別

看完還敢說分不清get與post的區別嗎

1、用途的描述

get方法請求乙個指定資源的表現形式,使用get請求應該只被用於獲取資料

post方法用於將實體提交到指定的資源,通常導致狀態或伺服器上的***的更改

2、http幾個方法的性質

safe-安全:乙個方法在語義上需要是唯讀的,不能修改伺服器狀態(或者說是資料),get, head, options 和 trace 這幾個方法是安全的

idempotent - 冪等:同乙個請求方法執行多次和僅執行一次的效果完全相同。put、delete 和get、 head、options、trace 方法都是冪等的,post方法是非冪等的

cacheable - 可快取性:乙個方法可以被快取,就是在某些情況下可以被快取,比如我們請求頁面時候,一些靜態檔案是可以直接從快取中獲取的,比如 css、js、等檔案。 get,head 和某些情況下的 post 都是可快取的。

3、get和post的幾個主要區別

get在瀏覽器回退或者重新整理時時無害的,而post會再次提交請求,因為get請求是冪等的,而post不是

get請求在url中傳送的引數是有長度限制的,而post沒有,因為大多數瀏覽器通常都會限制url長度在2k個位元組,而大多數伺服器最多處理64k大小的url

get請求只能進行url編碼,而post支援多種編碼方式

get引數通過url傳遞,post放在request body中

對引數的資料型別,get只接受ascii字元,而post沒有限制

get比post更不安全,因為引數直接暴露在url上,所以不能用來傳遞敏感資訊

get請求引數會被完整保留在瀏覽器歷史記錄裡,可被收藏為書籤,而post中的引數不會被保留

get請求會被瀏覽器主動cache,而post不會,除非手動設定

4、url編碼是什麼?

url編碼遵循下列規則: 每對name/value由&;符分開;每對來自表單的name/value由=符分開thename=ichabod+crane&gender=male&status=missing& ;headless=yes

url編碼就是乙個字元ascii碼的十六進製制。不過稍微有些變動,需要在前面加上「%」。比如「\」,它的ascii碼是92,92的十六進製制是5c,所以「\」的url編碼就是%5c

5、應用場景的區別

get

post

6、擴充套件

get/post都是http/https協議的方法,加不加密它們說了不算。如果你get/post是在http裡面,那就明文;在https裡面,就是密文。當然,post的資料本身可以加密,這屬於應用資料的加密,跟http等應用協議的加密是兩回事,互不影響。

常用的與伺服器進行的互動方式是get和post,而一般在表單的資料提交中,都會選擇post方式,如使用https進行web資料的完全加密傳輸,但是因為https是對所有的資料進行加密這樣就影響了網頁的瀏覽速率,況且有時只需對關鍵資料進行加密保護。這時就需要一些小規模的資料加密傳輸解決方法,用rsa加密演算法加密web資料,具體是在客戶端用js指令碼使用公鑰加密資料,再在伺服器端用php指令碼程式使用私鑰解密資料。參考:表單提交對資料進行加密詳解(rsa加密)

get和Post的區別是什麼

相同點 post和get都是向伺服器提交資料,並且都會從伺服器獲取資料 不同點 傳送長度 get引數有長度限制,而post無限制 get產生乙個tcp資料報 對於get方式的請求,瀏覽器會把http header和data一起傳送出去,伺服器相應200返回資料 post產生兩個tcp資料報 對於po...

GET 和 POST請求的本質區別是什麼?

conclusion first 到最後,問起來,get和post的最核心區別是什麼?我可能會回答 在用法上,乙個用於獲取資料,乙個用於修改資料 在根本上,沒有啥區別 在細節上,有一些區別,需要展開講嘛?最直觀的區別就是get把引數包含在url中,post通過request body傳遞引數。可以看...

GET 和 POST請求的本質區別是什麼?

get和post是http請求的兩種基本方法,要說它們的區別,接觸過web開發的人都能說出一二。最直觀的區別就是get把引數包含在url中,post通過request body傳遞引數。當你在面試中被問到這個問題,你的內心充滿了自信和喜悅。很遺憾,這不是我們要的回答!請告訴我真相。如果我告訴你get...