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)論軟件排行榜
熱門推薦
- 猿編程電腦版 v4.24.0官方版180.35M / 簡(jiǎn)體中文
- jetbrains fleet編輯器 v1.40.87官方版72.02M / 多國(guó)語言
- RubyMine2024電腦版 v2024.2.2官方版662.4M / 多國(guó)語言[中文]
- XMLSpy2024官方版 v26.2.1.0442.99M / 簡(jiǎn)體中文
- php for windows版 v8.3.7官方正式版30.67M / 英文
- pycharm2023專業(yè)版 v2023.3.5544.09M / 簡(jiǎn)體中文
- clion2023官方版 v2023.3.4750.29M / 多國(guó)語言[中文]
- Goland2023官方版 v2023.3.6476.44M / 英文
- myeclipse2023官方電腦版 v2023.1.21.47G / 英文
- 橙光制作工具電腦版 v2.5.27.0913官方版1.01M / 簡(jiǎn)體中文