【HTTP】get 和 post 两种基本请求方法
根據(jù)HTTP標(biāo)準(zhǔn),HTTP請(qǐng)求可以使用多種請(qǐng)求方法。
HTTP1.0定義了三種請(qǐng)求方法:Get,Post 和 Head方法
HTTP1.1新增了五種請(qǐng)求方法:Options,Put,Delete,Trace和Connect
HTTP Request Method方法
共計(jì)8種:
【以上內(nèi)容來自W3Cschool】
常用的兩種請(qǐng)求方式就是我們常說的Post,Get請(qǐng)求方法。
Post請(qǐng)求和Get請(qǐng)求區(qū)別:
上面這些都是一些比較官方的解釋。從本質(zhì)上來說,Get和Post請(qǐng)求并沒有區(qū)別,它們只不過是HTTP協(xié)議中兩種不同的發(fā)送請(qǐng)求的方式而已。
HTTP底層遵循的協(xié)議是TCP/IP協(xié)議,所以Get和Post請(qǐng)求也遵循TCP/IP協(xié)議。也就是說,Get和Post都是TCP鏈接。
TCP就像交通工具一樣,用來運(yùn)輸東西,TCP用來傳輸數(shù)據(jù),在傳輸數(shù)據(jù)過程中,要經(jīng)過三次握手,所以它是相對(duì)(UDP)安全的。在交通工具中,由于要在不同的環(huán)境中使用,所以會(huì)有天上飛的/陸上跑的/水里游的。在同一環(huán)境下也會(huì)有多種類型的交通工具。比如有裝載貨物的大/小貨車,有裝載人的大/小客車,汽車等。不同的交通工具會(huì)被貼上不同的標(biāo)簽,在HTTP請(qǐng)求方式中,根據(jù)用途不同,也會(huì)有不同的標(biāo)簽,這些被貼上的標(biāo)簽,就是用來識(shí)別這些請(qǐng)求方式的。所以Post和Get請(qǐng)求本質(zhì)上都是基于TCP/IP協(xié)議,用于傳輸數(shù)據(jù);只不過就是傳輸數(shù)據(jù)的方式是不同。就像我們從公司回到家里一樣,可以步行/騎電車/自駕,目標(biāo)都是家,只是回到家的方式不同罷了。不同的方式有它自己獨(dú)特的特點(diǎn),優(yōu)勢(shì)與劣勢(shì)等。
除了上面說到的這些,Get和Post請(qǐng)求還有一個(gè)重要的區(qū)別:Get產(chǎn)生一個(gè)TCP數(shù)據(jù)包,Post產(chǎn)生兩個(gè)TCP數(shù)據(jù)包。
在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ù))。也就是說,如果用一輛貨車從甲地往乙地運(yùn)送一車貨物,采用Get運(yùn)送方式,貨車會(huì)帶著命令-乙呀,我要給你一車財(cái)富哦,并且在甲地裝上貨物,開往乙地,到達(dá)乙地后,乙給出應(yīng)答。而采用Post運(yùn)送方式,貨車會(huì)先帶著命令開往乙地,把請(qǐng)求-給你一車財(cái)富 告訴乙,此時(shí)要接收乙的反饋信息,然后再回到甲地裝上財(cái)富,開往乙地,乙給出應(yīng)答。
在網(wǎng)絡(luò)良好情況下,兩種請(qǐng)求方式的時(shí)間差并不大,而在網(wǎng)絡(luò)環(huán)境較差的情況下,兩次數(shù)據(jù)包的TCP(Post請(qǐng)求方式)能夠很好的驗(yàn)證數(shù)據(jù)的完整性。
由于HTTP的規(guī)定和瀏覽器/服務(wù)器的不同,Get和Post請(qǐng)求在數(shù)據(jù)傳送過程中可能會(huì)有一些不同。
總結(jié)
以上是生活随笔為你收集整理的【HTTP】get 和 post 两种基本请求方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#中using关键字的使用
- 下一篇: 【Asp.net】Cookie对象