HTTP POST and GET請求的區別

2021-09-24 17:29:50 字數 1136 閱讀 7570

get請求:

get請求可被快取(快取靜態資源,不會快取動態資料)

get請求保留在瀏覽器歷史記錄中

get請求有長度限制(ie 2k,chrome 8k)

get請求將引數拼接到url上進行傳遞

post請求:

post請求不會被快取

post請求不會保留在瀏覽器歷史記錄中

post請求對資料長度沒有要求(server側可能有限制)

post請求將請求放到request body中(使用google 開發者工具等可以看到,只是相對安全)

總結:上面兩種限制都是http協議定義的,可以理解為軟限制。

如get請求也可以使用請求體傳遞資料,這時需要看server側是否嚴格按照http協議解析,如果server能夠解析,那就一切正常。

get請求長度限制源於url長度限制,url長度限制源於瀏覽器和伺服器的限制(ie 2k,chrome 8k)。

get請求和post請求本質上都是tcp連線。

get產生乙個tcp資料報。

post產生兩個資料報(先傳送header,收到響應100 continue之後再傳送data)。(這個不是固定的,依賴各瀏覽器的實現)

總體對比:

getpost

後退按鈕/重新整理

無害資料會被重新提交(瀏覽器應該告知使用者資料會被重新提交)。

書籤可收藏為書籤

不可收藏為書籤

快取能被快取

不能快取

編碼型別

歷史引數保留在瀏覽器歷史中。

引數不會儲存在瀏覽器歷史中。

對資料長度的限制

是的。當傳送資料時,get 方法向 url 新增資料;url 的長度是受限制的(url 的最大長度一般是 2048 個字元)。

無限制。

對資料型別的限制

只允許 ascii 字元。

沒有限制。也允許二進位制資料。

安全性與 post 相比,get 的安全性較差,因為所傳送的資料是 url 的一部分。

在傳送密碼或其他敏感資訊時絕不要使用 get !

post 比 get 更安全,因為引數不會被儲存在瀏覽器歷史或 web 伺服器日誌中。

可見性資料在 url 中對所有人都是可見的。

資料不會顯示在 url 中。

請不要哭泣

朋友,請不要哭泣,即使此刻你很受傷。傷害你的,不需要太多力量,而是他的一句話。你還是找乙個更好的人過日子吧 我知道這句話是怎樣把你的心靈震碎。而這殘忍的話語竟然出自自己深愛的男人之口。我知道你此刻有多痛心,曾經多收風風雨雨都走過了,如今卻要別離,別離,只因這句話刺耳的話。你憔悴的臉龐,劃過道道淚痕,...

請不要折騰

下午看電視,吉林台老梁說事 不記得什麼節目,就是老梁說說自己的看法 講的是高校擴招的利弊。比較喜歡他的節目,一口東北腔,相貌憨厚,評說切中要害。其中提到一點,我很有體會 很多措施在實施時,基礎可能都不夠牢靠,強行上馬,屬於 折騰 在實施後,都要有個階段償還以前欠下的 債務 只有經過這個較長時期的修養...

請讚賞別人

叫別人去做一件事情的最好辦法,就是把他需要的東西給他。每個人內心深處都有一種慾望,就是成為 重要人物的慾望 尋求自重感的慾望,是人跟動物之間一項重要的區別。林肯說,每個人都喜歡受人恭維。威利。賈姆士說,人類天性到深的本質,就是渴求為人所重視。所以,請真誠的讚揚別人。許多精神錯亂的人,在瘋癲中,找到了...