對(duì)于GET方式的請(qǐng)求床嫌,瀏覽器會(huì)把http header和data一并發(fā)送出去,服務(wù)器響應(yīng)200(返回?cái)?shù)據(jù));
而對(duì)于POST胸私,瀏覽器先發(fā)送header厌处,服務(wù)器響應(yīng)100 continue,瀏覽器再發(fā)送data岁疼,服務(wù)器響應(yīng)200 ok(返回?cái)?shù)據(jù))阔涉。
也就是說(shuō)缆娃,GET只需要汽車(chē)跑一趟就把貨送到了,而POST得跑兩趟瑰排,第一趟贯要,先去和服務(wù)器打個(gè)招呼“嗨,我等下要送一批貨來(lái)椭住,你們打開(kāi)門(mén)迎接我”崇渗,然后再回頭把貨送過(guò)去。
因?yàn)镻OST需要兩步京郑,時(shí)間上消耗的要多一點(diǎn)宅广,看起來(lái)GET比POST更有效。因此Yahoo團(tuán)隊(duì)有推薦用GET替換POST來(lái)優(yōu)化網(wǎng)站性能些举。但這是一個(gè)坑!跳入需謹(jǐn)慎跟狱。為什么?
1)GET與POST都有自己的語(yǔ)義,不能隨便混用户魏。
2)據(jù)研究驶臊,在網(wǎng)絡(luò)環(huán)境好的情況下,發(fā)一次包的時(shí)間和發(fā)兩次包的時(shí)間差別基本可以無(wú)視叼丑。而在網(wǎng)絡(luò)環(huán)境差的情況下关翎,兩次包的TCP在驗(yàn)證數(shù)據(jù)包完整性上,有非常大的優(yōu)點(diǎn)幢码。
3)并不是所有瀏覽器都會(huì)在POST中發(fā)送兩次包笤休,F(xiàn)irefox就只發(fā)送一次。
瀏覽器從一個(gè)域名的網(wǎng)頁(yè)去請(qǐng)求另一個(gè)域名的資源時(shí)症副,域名、端口政基、協(xié)議任一不同贞铣,都是跨域