日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【HTTP】get 和 post 两种基本请求方法

發(fā)布時(shí)間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【HTTP】get 和 post 两种基本请求方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

根據(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ū)別:

  • Get在瀏覽器回退時(shí)不重復(fù)提交請(qǐng)求,而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ù)被毀完整保留在瀏覽器歷史記錄里,而Post中的參數(shù)不會(huì)被保留。
  • Get請(qǐng)求在url中傳遞的參數(shù)是有長(zhǎng)度限制的,而Post沒有。
  • 對(duì)參數(shù)的數(shù)據(jù)類型,Get只接受ASCII字符,而Post沒有限制。
  • Get比Post更不安全,因?yàn)镚et會(huì)把信息暴露在URL上,所以不能用來傳送敏感信息。
  • Get參數(shù)通過URL傳遞,而Post是放在Requset body中。
  • 上面這些都是一些比較官方的解釋。從本質(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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。