GET與POST有什么區(qū)別呢?
1.使用get發(fā)送請(qǐng)求時(shí)會(huì)把參數(shù)放到URL中,而POST則把參數(shù)放到ReqestBody中
2.get與post都有特定的作用域,例: 文件上傳只能以POST,get則不行
3.get傳的參數(shù)有大小限制,而post的則沒(méi)有大小限制
3.get會(huì)唄瀏覽器freeMarker,post則不會(huì)
4.對(duì)于get方式服務(wù)器端使用request.queryString獲取參數(shù),post方式使用request.form獲取
5.get因?yàn)閰?shù)在url后面所以安全性較低,post則較高
6.get只能接受ascll字符, post沒(méi)有限制
要想知道他們的具體區(qū)別,那么就讓我們脫掉他華麗的外衣吧!!
Get和POST本質(zhì)上都是是兩種發(fā)送請(qǐng)求的方式,都是http中發(fā)送請(qǐng)求的方式。
那么http是什么呢,http是基于TCP/IP的關(guān)于數(shù)據(jù)如何在萬(wàn)維網(wǎng)中傳輸?shù)膮f(xié)議,所以說(shuō)他們的底層都是TCP鏈接,都是TCP發(fā)送請(qǐng)求的兩種方式,兩者功能是一樣的,從技術(shù)層面來(lái)講,我們可以在post后面追加參數(shù),在get的requesbody中存入值。
那我們上面說(shuō)的區(qū)別是什么呢?
其實(shí)是在萬(wàn)維網(wǎng)中數(shù)據(jù)是以TCP數(shù)據(jù)包的形式傳輸?shù)?就像小汽車(chē)一樣,但是如果都是一模一樣的小汽車(chē)的話那就亂套了,所以這時(shí)交通規(guī)則http就出來(lái)了,http規(guī)定執(zhí)行g(shù)et請(qǐng)求的就要把貨放到車(chē)頂(url),執(zhí)行post請(qǐng)求的就要吧貨放在車(chē)內(nèi)(requestbody)
中,當(dāng)然get請(qǐng)求也可以把貨偷偷藏到車(chē)內(nèi),當(dāng)然這樣是可恥的的
這個(gè)時(shí)候另一個(gè)大BOSS運(yùn)輸公司(瀏覽器,服務(wù)器),就出來(lái)了,不同的運(yùn)輸公司處理的方式是不一樣的,畢竟拉貨都是有成本的啊,有的會(huì)把post請(qǐng)求放到url的貨物取出來(lái),也會(huì)吧get藏到車(chē)內(nèi)搜出來(lái),但是有的卻不會(huì),所以說(shuō)上面的區(qū)別都是根據(jù)瀏覽器服務(wù)器的不同產(chǎn)生的
但是,你以為這樣就結(jié)束了嗎
Get和post的最大的區(qū)別就是get在發(fā)送請(qǐng)求的時(shí)會(huì)把請(qǐng)求的頭和body全部傳輸過(guò)去,服務(wù)器直接響應(yīng)200成功,而post則不然,post會(huì)先把post的頭 發(fā)送過(guò)去,服務(wù)器相應(yīng)100 continue,再把data傳送過(guò)去 服務(wù)器響應(yīng)200成功,就是小汽車(chē)發(fā)貨時(shí)先跑過(guò)去說(shuō) :“親愛(ài)的!!我要發(fā)貨啦!!!” , 服務(wù)器響應(yīng): “好勒!!!!”,然后小汽車(chē)再把貨發(fā)過(guò)去
因?yàn)镻OST需要兩部,所以看起來(lái)POST是比較慢!!!但是經(jīng)過(guò)海威的測(cè)試,在網(wǎng)速好的情況下,區(qū)別是不大的.
而且剛才也說(shuō)了他們有各自的作用域,不能亂用哦!
咨詢熱線
010-85377344
135-21581588
微信客服
QQ客服
3026106565 點(diǎn)擊咨詢