來源:辣子雞 發(fā)布時間:2020-05-12 11:03:57 閱讀量:2389
前言
之前一次面試時面試官問到了Get請求和Post請求的區(qū)別,對于web基礎(chǔ)來說這個還是比較重要的,所以我打算整理一下分享給大家,以下是我個人的一些總結(jié),如果大神有更好的理解,歡迎補充。
從三個方面來總結(jié)
Get請求和Post請求的區(qū)別
優(yōu)缺點
何時用Get請求,何時用Post請求
正文
1、Get請求和Post請求的區(qū)別
我們主要從五個角度去分析兩者的區(qū)別:
1、請求的形式
GET請求:把請求的數(shù)據(jù)放在URL上,用?分割URL和傳輸?shù)臄?shù)據(jù),多個參數(shù)的話用&符號連接。
舉個例子,“ http://www.laziji.com?id=11&name=laziji ”在這個地址里面,?后面的時請求的參數(shù),這里有兩個參數(shù)id和name,值分別為“11”和“l(fā)aziji”??偨Y(jié):1.參數(shù)就是傳給后臺取值的,“?”是解析的開始點,“&”是將多個參數(shù)進行連接的。2.URL的結(jié)構(gòu):“協(xié)議://域名或IP地址:端口號/目錄/文件名.文件名后綴?參數(shù)1=值1&參數(shù)2=值2”
POST請求:把請求的數(shù)據(jù)放在HTTP請求包的包體中(requrest body)。
POST請求包含兩個部分:請求頭(header)和請求體(body)
2、傳輸數(shù)據(jù)的大小
GET請求:雖然在HTTP規(guī)范中沒有對URL的長度和傳輸數(shù)據(jù)的大小做限制,但是實際情況下,瀏覽器一般會限制url的長度不超過2k個字節(jié),提交的數(shù)據(jù)最大是2k。
POST請求:理論上也是不限制的,但是實際上服務(wù)器會對post提交數(shù)據(jù)的大小做限制。
3、安全性
GET請求:在傳輸數(shù)據(jù)時會將數(shù)據(jù)保留在瀏覽器的歷史記錄中,而且傳輸?shù)臄?shù)據(jù)參數(shù)會顯示在url中,所有人都可以查看,安全行低。
POST請求:在請求時數(shù)據(jù)是存放在請求包中的,不顯示在url中,并且數(shù)據(jù)不會保留在瀏覽器的歷史記錄中。
4、編碼方式
GET請求只能ASCII編碼;POST請求支持多種編碼方式。
5、對服務(wù)器的操作
GET請求:只是從服務(wù)器獲取數(shù)據(jù),不進行修改。
POST請求:向服務(wù)器提交數(shù)據(jù),可能更新數(shù)據(jù),也就更改了服務(wù)器的數(shù)據(jù)。
2、優(yōu)缺點
get請求比post請求快。
get產(chǎn)生一個TCP數(shù)據(jù)包,post產(chǎn)生兩個TCP數(shù)據(jù)包;
GET請求:瀏覽器將header和data一起發(fā)送,服務(wù)器響應(yīng)200(返回數(shù)據(jù))。POST請求:瀏覽器先將header發(fā)送,服務(wù)器響應(yīng)100 continue,瀏覽器再將data發(fā)送,服務(wù)器響應(yīng)200(返回數(shù)據(jù))。
get會將數(shù)據(jù)保留在瀏覽器的歷史記錄中,post不會。
post不能進行管道化傳輸。
3、何時用Get請求,何時用Post請求
適合使用GET請求的情況:
用來查找資源,HTML表單數(shù)據(jù)只是用來幫助搜索。
請求結(jié)果無持續(xù)性的副作用。
收集的數(shù)據(jù)及HTML表單內(nèi)輸入的字段名稱不超過1024個字符
適合使用POST請求的情況:
請求結(jié)果有持續(xù)性的副作用。如修改數(shù)據(jù)、添加數(shù)據(jù)。
當使用get方法URL過長時改用post方法。
要傳輸?shù)臄?shù)據(jù)不是采用7位的ASCII編碼。
在線
客服
客服
熱線
7*24小時客服服務(wù)熱線
關(guān)注
微信
關(guān)注官方微信