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

Http定義了與服務(wù)器交互的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETE。URL全稱是資源描述符,

我們可以這樣認(rèn)為:一個URL地址,它用于描述一個網(wǎng)絡(luò)上的資源,而HTTP中的GET,POST,PUT,DELETE就對應(yīng)著對這個資源的

查,改,增,刪4個操作。到這里,大家應(yīng)該有個大概的了解了,GET一般用于獲取/查詢資源信息,而POST一般用于更新資源信息。

(1)GET提交,請求的數(shù)據(jù)會附在URL之后(就是把數(shù)據(jù)放置在請求行(request line)中),以?分割URL和傳輸數(shù)據(jù),多個參數(shù)用&連接;

例如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD。Url的編碼格式采用的是ASCII碼,而不是Unicode,

這也就是說你不能在Url中包含任何非ASCII字符,所有非ASCII字符均需要編碼再傳輸,關(guān)于Url編碼可參考:http://kb.cnblogs.com/page/133765/。

POST提交:把提交的數(shù)據(jù)放置在是HTTP包的包體中。上文示例中紅色字體標(biāo)明的就是實(shí)際的傳輸數(shù)據(jù)

因此,GET提交的數(shù)據(jù)會在地址欄中顯示出來,而POST提交,地址欄不會改變

(2)傳輸數(shù)據(jù)的大小,HTTP協(xié)議沒有對傳輸?shù)臄?shù)據(jù)大小進(jìn)行限制,HTTP協(xié)議規(guī)范也沒有對URL長度進(jìn)行限制。

而在實(shí)際開發(fā)中存在的限制主要有:

GET:特定瀏覽器和服務(wù)器對URL長度有限制,例如IE對URL長度的限制是2083字節(jié)(2K+35),

對于其他瀏覽器如Netscape、FireFox等,理論上沒有長度限制,其限制取決于操作系統(tǒng)的支持。

因此對于GET提交時,傳輸數(shù)據(jù)就會受到URL長度的限制。

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

(3)安全性:

.POST的安全性要比GET的安全性高。注意:這里所說的安全性和上面GET提到的“安全”不是同個概念。上面“安全”的含義僅僅是不作數(shù)據(jù)修改,而這 里安全的含義是真正的Security的含義,比如:通過GET提交數(shù)據(jù),用戶名和密碼將明文出現(xiàn)在URL上,因?yàn)?1)登錄頁面有可能被瀏覽器緩存, (2)其他人查看瀏覽器的歷史紀(jì)錄,那么別人就可以拿到你的賬號和密碼了,除此之外,使用GET提交數(shù)據(jù)還可能會造成Cross-site request forgery攻擊

(4)Http get,post,soap協(xié)議都是在http上運(yùn)行的

1)get:請求參數(shù)是作為一個key/value對的序列(查詢字符串)附加到URL上的

查詢字符串的長度受到web瀏覽器和web服務(wù)器的限制(如IE最多支持2048個字符),不適合傳輸大型數(shù)據(jù)集同時,它很不安全

2)post:請求參數(shù)是在http標(biāo)題的一個不同部分(名為entity body)傳輸?shù)模?/p>

這一部分用來傳輸表單信息,因此必須將Content-type設(shè)置為:application/x-www-form-urlencoded。

post設(shè)計(jì)用來支持web窗體上的用戶字段,其參數(shù)也是作為key/value對傳輸。

一般我們提交表單使用的方法為post


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Http方法:Get請求與Post請求的區(qū)別 Get是向服務(wù)器發(fā)索取數(shù)據(jù)的一種請求,而Post是向服務(wù)器提交數(shù)據(jù)的...
    ninja梅梅閱讀 594評論 0 1
  • GET和POST請求的區(qū)別,翻看網(wǎng)友各種說法, 總結(jié)如下: 第一種: 1. get是從服務(wù)器上獲取數(shù)據(jù),post是...
    和玨貓閱讀 1,350評論 0 3
  • Http定義了與服務(wù)器交互的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETE。URL全稱...
    heachou閱讀 695評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,653評論 19 139
  • 共振也叫同振,是物理上的詞匯,即一個物體作用于另一個物體時,兩個物體達(dá)到共同的震動頻率時就會產(chǎn)生共振現(xiàn)象,這...
    一訪文閱讀 1,970評論 1 8

友情鏈接更多精彩內(nèi)容