首 頁(yè)
手機(jī)版

POST參數(shù)解析工具 v1.0

GET和POST是HTTP請(qǐng)求的兩種基本方法,最直觀的區(qū)別就是GET把參數(shù)包含在URL中,POST通過request body傳遞參數(shù)。這里小編提供的是POST參數(shù)解析工具,它可以用于普通post包參數(shù)快速解析對(duì)比,從而節(jié)省開發(fā)時(shí)間,提高用戶的工作效率,適用于web開發(fā)人員使用,并且可以用來平常寫到協(xié)議類用到的提交數(shù)據(jù)做解析,可以進(jìn)行對(duì)比參數(shù)的相不相同,以及參數(shù)的排序問題,讓用戶可以更加直觀查看參數(shù),歡迎免費(fèi)下載體驗(yàn)。

post參數(shù)格式說明

1、json格式

2、urlencoded格式

3、key-value格式

4、MultipartForm

5、XML格式

get和post請(qǐng)求的區(qū)別?

一、GET和POST是什么?HTTP協(xié)議中的兩種發(fā)送請(qǐng)求的方法。

HTTP是什么?HTTP是基于TCP/IP的關(guān)于數(shù)據(jù)如何在萬維網(wǎng)中如何通信的協(xié)議。

HTTP的底層是TCP/IP。所以GET和POST的底層也是TCP/IP,也就是說,GET/POST都是TCP鏈接。GET和POST能做的事情是一樣一樣的。你要給GET加上request body,給POST帶上url參數(shù),技術(shù)上是完全行的通的。

GET和POST還有一個(gè)重大區(qū)別,簡(jiǎn)單的說:

GET產(chǎn)生一個(gè)TCP數(shù)據(jù)包;POST產(chǎn)生兩個(gè)TCP數(shù)據(jù)包。

長(zhǎng)的說:

對(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ù))。

也就是說,GET只需要汽車跑一趟就把貨送到了,而POST得跑兩趟,第一趟,先去和服務(wù)器打個(gè)招呼“嗨,我等下要送一批貨來,你們打開門迎接我”,然后再回頭把貨送過去。

因?yàn)镻OST需要兩步,時(shí)間上消耗的要多一點(diǎn),看起來GET比POST更有效。因此Yahoo團(tuán)隊(duì)有推薦用GET替換POST來優(yōu)化網(wǎng)站性能。但這是一個(gè)坑,跳入需謹(jǐn)慎。為什么?

1. GET與POST都有自己的語義,不能隨便混用。

2. 據(jù)研究,在網(wǎng)絡(luò)環(huán)境好的情況下,發(fā)一次包的時(shí)間和發(fā)兩次包的時(shí)間差別基本可以無視。而在網(wǎng)絡(luò)環(huán)境差的情況下,兩次包的TCP在驗(yàn)證數(shù)據(jù)包完整性上,有非常大的優(yōu)點(diǎn)。

3. 并不是所有瀏覽器都會(huì)在POST中發(fā)送兩次包,F(xiàn)irefox就只發(fā)送一次。

二、get和post表現(xiàn)形式區(qū)別:

在HTTP請(qǐng)求中,奇異行必須是一個(gè)請(qǐng)求行,包括請(qǐng)求方法,請(qǐng)求URL,報(bào)文所用HTTP版本信息。緊接著是一個(gè)herders小節(jié),可以有零個(gè)或一個(gè)首部,用來說明服務(wù)器要使用的附加信息。在首部之后就是一個(gè)空行,最后就是報(bào)文實(shí)體的主體部分,包含一個(gè)由任意數(shù)據(jù)組成的數(shù)據(jù)塊。但是并不是所有的報(bào)文都包含實(shí)體的主體部分。

接下來看看兩種請(qǐng)求方式的區(qū)別:

1、GET請(qǐng)求,請(qǐng)求的數(shù)據(jù)會(huì)附加在URL之后,以?分割URL和傳輸數(shù)據(jù),多個(gè)參數(shù)用&連接。URL的編碼格式采用的是ASCII編碼,而不是uniclde,即是說所有的非ASCII字符都要編碼之后再傳輸。

POST請(qǐng)求:POST請(qǐng)求會(huì)把請(qǐng)求的數(shù)據(jù)放置在HTTP請(qǐng)求包的包體中。上面的item=bandsaw就是實(shí)際的傳輸數(shù)據(jù)。

因此,GET請(qǐng)求的數(shù)據(jù)會(huì)暴露在地址欄中,而POST請(qǐng)求則不會(huì)。

2、傳輸數(shù)據(jù)的大小

在HTTP規(guī)范中,沒有對(duì)URL的長(zhǎng)度和傳輸?shù)臄?shù)據(jù)大小進(jìn)行限制。但是在實(shí)際開發(fā)過程中,對(duì)于GET,特定的瀏覽器和服務(wù)器對(duì)URL的長(zhǎng)度有限制。因此,在使用GET請(qǐng)求時(shí),傳輸數(shù)據(jù)會(huì)受到URL長(zhǎng)度的限制。

對(duì)于POST,由于不是URL傳值,理論上是不會(huì)受限制的,但是實(shí)際上各個(gè)服務(wù)器會(huì)規(guī)定對(duì)POST提交數(shù)據(jù)大小進(jìn)行限制,Apache、IIS都有各自的配置。

3、安全性

POST的安全性比GET的高。這里的安全是指真正的安全,而不同于上面GET提到的安全方法中的安全,上面提到的安全僅僅是不修改服務(wù)器的數(shù)據(jù)。比如,在進(jìn)行登錄操作,通過GET請(qǐng)求,用戶名和密碼都會(huì)暴露再URL上,因?yàn)榈卿涰?yè)面有可能被瀏覽器緩存以及其他人查看瀏覽器的歷史記錄的原因,此時(shí)的用戶名和密碼就很容易被他人拿到了。除此之外,GET請(qǐng)求提交的數(shù)據(jù)還可能會(huì)造成Cross-site request frogery攻擊

4、HTTP中的GET、POST、SOAP協(xié)議都是在HTTP上運(yùn)行的

收起介紹展開介紹
  • 下載地址

發(fā)表評(píng)論

0條評(píng)論