get和post的區別

來源:互聯網
上載者:User

標籤:style   http   os   使用   資料   sp   on   c   html   

第一種說法:

       get是用於擷取資料的;post一般用於將資料發給伺服器之用。

第二種說法:最普遍的答案--------(這隻是HTML標準對HTTP協議的用法有約定。)

      1、GET使用url或Cookie傳參。而POST將資料放在BODY中。

     2、GET的URL會有長度上的限制,而POST的資料則可以非常大。

     3、POST比GET更安全,因為資料在地址欄上不可見。

正確的是:GET和POST與資料如何傳遞沒有關係。GET和POST是有HTTP協議定義的。在HTTP協議中,Method和Data(URL,Body,Header)是正交的兩個概念,也就是說,使用哪個Method與應用程式層的資料如何傳輸是沒有相互關係的。

      HTTP沒有要求,如果Method是POST資料就要放在BODY中。也沒有要求,如果Method是GET,資料(參數)就一定要放在URL中而不能放在BODY中。

 

 

現代的Web Server都是支援GET中包含BODY這樣的請求。雖然這種請求不可能從瀏覽器發出,但是現在的Web Server又不是只給瀏覽器用,已經完全超出了HTML伺服器的範疇。

 

     HTTP協議對GET和POST都沒有對長度的限制,HTTP協議明確地指出了,HTTP頭和body都沒有長度的要求,而對於URL長度上的限制,主要有兩方面的原因:

  1. 瀏覽器。因為早期的瀏覽器會對URL長度做限制。(行內人士認同:IE對URL長度會限制在2048個字元內)

 2. 伺服器。URL太長,對伺服器處理也是一種負擔。原本一個會話的沒有多少資料,現在如果有人惡意的構造幾個幾M大小的URL,並不停地訪問你的伺服器。伺服器的最大並發數顯然會下降。另一種攻擊方式是,把告訴伺服器Content-Length是一個很大的數,然後只給伺服器發一點資料

 

 

安全不安全跟GET、POST是沒有關係的。

     

 

       

 

get和post的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.