·請簡要描述get請求方式和post請求方式的區(qū)別巡李!
1.GET請求的數(shù)據(jù)會附在URL之后抚笔,(將數(shù)據(jù)放置在HTTP協(xié)議頭中),以?分割URL和傳輸數(shù)據(jù),參數(shù)之間&相連击儡。
POST將提交的數(shù)據(jù)放置在HTTP包的包體中
2.GET方式提交的數(shù)據(jù)最多只能是1024字節(jié)塔沃,理論上POST沒有限制,可以傳大量的數(shù)據(jù)阳谍。
3.POST的安全性比GET的安全性高
GET提交數(shù)據(jù):用戶名和密碼將明文出現(xiàn)在URL上蛀柴,
GET是向服務器發(fā)索取數(shù)據(jù)的一種請求,POST是向服務器提交數(shù)據(jù)的一種請求矫夯。
GET和POST還有一個重大區(qū)別鸽疾,簡單的說:
GET產(chǎn)生一個TCP數(shù)據(jù)包;POST產(chǎn)生兩個TCP數(shù)據(jù)包。
對于GET方式的請求训貌,瀏覽器會把http header和data一并發(fā)送出去制肮,服務器響應200(返回數(shù)據(jù));
而對于POST冒窍,瀏覽器先發(fā)送header,服務器響應100 continue豺鼻,瀏覽器再發(fā)送data综液,服務器響應200 ok(返回數(shù)據(jù))。
也就是說儒飒,GET只需要汽車跑一趟就把貨送到了谬莹,而POST得跑兩趟,第一趟桩了,先去和服務器打個招呼“嗨附帽,我等下要送一批貨來,你們打開門迎接我”井誉,然后再回頭把貨送過去蕉扮。
因為POST需要兩步,時間上消耗的要多一點颗圣,看起來GET比POST更有效喳钟。因此Yahoo團隊有推薦用GET替換POST來優(yōu)化網(wǎng)站性能。但這是一個坑!跳入需謹慎欠啤。為什么?
1. GET與POST都有自己的語義荚藻,不能隨便混用。
2. 據(jù)研究洁段,在網(wǎng)絡環(huán)境好的情況下应狱,發(fā)一次包的時間和發(fā)兩次包的時間差別基本可以無視。而在網(wǎng)絡環(huán)境差的情況下祠丝,兩次包的TCP在驗證數(shù)據(jù)包完整性上疾呻,有非常大的優(yōu)點。
3. 并不是所有瀏覽器都會在POST中發(fā)送兩次包写半,F(xiàn)irefox就只發(fā)送一次岸蜗。