使用post與使用get區別

來源:互聯網
上載者:User

使用post與使用get區別

分類: WEB

使用post與使用get區別(asp

一、 在Form裡面,可以使用post也可以使用get。它們都是method的合法取值。但是,post和get方法在使用上至少有兩點不同:
1、Get方法通過URL請求來傳遞使用者的輸入。Post方法通過另外的形式。
2、Get方式的提交你需要用Request.QueryString來取得變數的值,而Post方式提交時,你必須通過Request.Form來訪問提交的內容。
仔細研究下面的代碼。你可以運行之來感受一下:
代碼
<!--兩個Form只有Method屬性不同-->
<FORM ACTION=“getpost.asp” METHOD=“get”>
<INPUT TYPE=“text” VALUE=“Hello World”></INPUT>
<INPUT TYPE=“submit” VALUE=“Method=Get”></INPUT>
</FORM>
<BR>
<FORM ACTION=“getpost.asp” METHOD=“post”>
<INPUT TYPE=“text” VALUE=“Hello World”></INPUT>
<INPUT TYPE=“submit” VALUE=“Method=Post”></INPUT>
</FORM>
<BR>
<BR>
<% If Request.QueryString(“Text”) <> ““ Then %>
通過get方法傳遞來的字串是: “<B><%= Request.QueryString(“Text”) %></B>“<BR>
<% End If %>
<% If Request.Form(“Text”) <> ““ Then %>
通過Post方法傳遞來的字串是: “<B><%= Request.Form(“Text”) %></B>“<BR>
<% End If %>
說明
把上面的代碼儲存為getpost.asp,然後運行,首先測試post方法,這時候,瀏覽器的url並沒有什麼變化,返回的結果是:
通過Post方法傳遞來的字串是: "Hello World"
然後測試用get方法提交,請注意,瀏覽器的url變成了:
http://localhost/general/form/getpost.asp?Text=Hello+World
而返回的結果是:
通過get方法傳遞來的字串是: "Hello World"
最後再通過post方法提交,瀏覽器的url還是:
http://localhost/general/form/getpost.asp?Text=Hello+World
而返回的結果變成:
通過get方法傳遞來的字串是: "Hello World"
通過Post方法傳遞來的字串是: "Hello World"

 

提示
通過get方法提交資料,可能會帶來安全性的問題。比如一個登陸頁面。當通過get方法提交資料時,使用者名稱和密碼將出現在URL上。如果:
1、 登陸頁面可以被瀏覽器緩衝;
2、 其他人可以訪問客戶的這台機器。
那麼,別人即可以從瀏覽器的記錄中,讀取到此客戶的帳號和密碼。所以,在某些情況下,get方法會帶來嚴重的安全性問題。

 建議 :在Form中,建議使用post方法。
二、<form action="" method="post">重新整理時會彈出提示框,問是否重新發送請求,若改為method=get則不會有該提示,以下是post和get的一些區別
 post請求無長度限制(至少是理論上的)
 get有長度限制,最長不超過2048位元組(1024個漢字)

三、還記得Request.QueryString()嗎,只要是用get傳遞值,那麼都會跟在http請求的串後面!可以試試!而post則不會在http請求串的後面,而是在請求的最後面!而且看不見的,一般密碼可一定得這樣傳了,否則在地址欄裡可以直接看見!!(雖然都不加密)
還有就是post傳的內容多一些
再就是一般的用IIS過濾器的只接受get參數,這就是為什麼那些大型搜尋引擎後面都是一大堆的內容了,因為post不能發過去,只能用get。看看Goole或是yahoo等知道了!

 
四、表單提交中get和post方式的區別歸納如下幾點:
1. get是從伺服器上擷取資料,post是向伺服器傳送資料。
2.  get是把參數資料隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。使用者看不到這個過程。
3. 對於get方式,伺服器端用Request.QueryString擷取變數的值,對於post方式,伺服器端用Request.Form擷取提交的資料。
4. get傳送的資料量較小,不能大於2KB。post傳送的資料量較大,一般被預設為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
5.  get安全性非常低,post安全性較高。

 


Get Post 的區別( jsp)

 Get 和 Post 的區別好像比我想象中的大,最近在使用 Tomcat 進行開發的過程中至少發現兩點:

 一、這兩者傳遞參數時所用的編碼不一定是一樣的。在 Tomcat 中似乎 Get 的編碼方式是根據頁面中指定的編碼方式,而 Post 則是一直使用同一種編碼方式,可在 Tomcat 的 server.xml 中配置。

 二、使用 Get 的時候,參數會顯示在地址欄上,而 Post 不會。

 所以,如果這些資料是中文資料而且是非敏感性資料,那麼使用 get;如果使用者輸入的資料不是中文字元而且包含敏感性資料,那麼還是使用 post為好。

他們傳遞參數的時候編碼不一樣,get方式不進行編碼直接進行傳遞,所以別人可以看見你的傳遞內容(當然可以採取措施避免使用者看到內容,比如用Javascript動態組織URL),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.