WEB中get请求和post请求的区别
生活随笔
收集整理的這篇文章主要介紹了
WEB中get请求和post请求的区别
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
參考:https://blog.csdn.net/weixin_39361808/article/details/81136865
GET請(qǐng)求和POST請(qǐng)求是HTTP協(xié)議發(fā)送請(qǐng)求的兩種基本方法。
W3C上給出的兩者的區(qū)別:
- GET在瀏覽器回退時(shí)是無(wú)害的,而POST會(huì)再次提交請(qǐng)求。
- GET產(chǎn)生的URL地址可以被Bookmark(作為書簽被收藏),而POST不可以。
- GET請(qǐng)求會(huì)被瀏覽器主動(dòng)cache,而POST不會(huì),除非手動(dòng)設(shè)置。
- GET請(qǐng)求只能進(jìn)行url編碼,而POST支持多種編碼方式。
- GET請(qǐng)求參數(shù)會(huì)被完整保留在瀏覽器歷史記錄里,而POST中的參數(shù)不會(huì)被保留。
- GET請(qǐng)求在URL中傳送的參數(shù)是有長(zhǎng)度限制的,而POST么有。
對(duì)參數(shù)的數(shù)據(jù)類型,GET只接受ASCII字符,而POST沒有限制。 - GET比POST更不安全,因?yàn)閰?shù)直接暴露在URL上,所以不能用來傳遞敏感信息。
- GET參數(shù)通過URL傳遞,POST放在Request body中。
- GET請(qǐng)求: 把參數(shù)包含在URL中
- POST請(qǐng)求: 通過request body傳遞參數(shù)
- 為什么限制GET請(qǐng)求URL中參數(shù)的大小: 數(shù)據(jù)量太大會(huì)對(duì)瀏覽器和服務(wù)器造成很大的負(fù)擔(dān)。
GET請(qǐng)求與POST請(qǐng)求的本質(zhì)都是TCP連接,但是由于HTTP的規(guī)定和瀏覽器/服務(wù)器的限制決定了它們?cè)趹?yīng)用時(shí)的不同。
使用場(chǎng)景:
- GET:
1、查
2、請(qǐng)求的結(jié)果無(wú)持續(xù)性的副作用(如僅僅只是查找數(shù)據(jù)庫(kù)) - POST:
1、改
2、請(qǐng)求的結(jié)果有持續(xù)性的副作用(如修改了數(shù)據(jù)庫(kù)中的表)
Get和Post另一個(gè)重大區(qū)別:
Get產(chǎn)生一個(gè)TCP數(shù)據(jù)包;Post產(chǎn)生兩個(gè)TCP數(shù)據(jù)包。
對(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ù))。
總結(jié)
以上是生活随笔為你收集整理的WEB中get请求和post请求的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中public、protecte
- 下一篇: Mybatis的一对一查询以及延迟加载