小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

使用post與使用get區(qū)別(asp、jsp)

 知足常樂WQL 2006-07-31

使用post與使用get區(qū)別(asp

一、 Form里面,可以使用post也可以使用get。它們都是method的合法取值。但是,postget方法在使用上至少有兩點不同:

1、Get方法通過URL請求來傳遞用戶的輸入。Post方法通過另外的形式。

2Get方式的提交你需要用Request.QueryString來取得變量的值,而Post方式提交時,你必須通過Request.Form來訪問提交的內(nèi)容。

 

仔細(xì)研究下面的代碼。你可以運行之來感受一下:

 

代碼

<!--兩個Form只有Method屬性不同-->

<FORM ACTION=“getpost.asp” METHOD=“get”>

<INPUT TYPE=“text” NAME=“Text” VALUE=“Hello World”></INPUT>

<INPUT TYPE=“submit” VALUE=“Method=Get”></INPUT>

</FORM>

<BR>

<FORM ACTION=“getpost.asp” METHOD=“post”>

<INPUT TYPE=“text” NAME=“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并沒有什么變化,返回的結(jié)果是:

通過Post方法傳遞來的字符串是: "Hello World"

然后測試用get方法提交,請注意,瀏覽器的url變成了:

http://localhost/general/form/getpost.asp?Text=Hello+World

而返回的結(jié)果是:

通過get方法傳遞來的字符串是: "Hello World"

最后再通過post方法提交,瀏覽器的url還是:

http://localhost/general/form/getpost.asp?Text=Hello+World

而返回的結(jié)果變成:

通過get方法傳遞來的字符串是: "Hello World"

通過Post方法傳遞來的字符串是: "Hello World"

 

提示

通過get方法提交數(shù)據(jù),可能會帶來安全性的問題。比如一個登陸頁面。當(dāng)通過get方法提交數(shù)據(jù)時,用戶名和密碼將出現(xiàn)在URL上。如果:

1、 登陸頁面可以被瀏覽器緩存;

2、 其他人可以訪問客戶的這臺機器。

那么,別人即可以從瀏覽器的歷史記錄中,讀取到此客戶的賬號和密碼。所以,在某些情況下,get方法會帶來嚴(yán)重的安全性問題。

 

建議 :在Form中,建議使用post方法。

 

二、<form action="" method="post">刷新時會彈出提示框,問是否重新發(fā)送請求,若改為method=get則不會有該提示,以下是postget的一些區(qū)別

 

 post請求無長度限制(至少是理論上的)

 get有長度限制,最長不超過2048字節(jié)(1024個漢字)

 

三、還記得Request.QueryString()嗎,只要是用get傳遞值,那么都會跟在http請求的串后面!可以試試!而post則不會在http請求串的后面,而是在請求的最后面!而且看不見的,一般密碼可一定得這樣傳了,否則在地址欄里可以直接看見?。。m然都不加密)

還有就是post傳的內(nèi)容多一些

再就是一般的用IIS過濾器的只接受get參數(shù),這就是為什么那些大型搜索引擎后面都是一大堆的內(nèi)容了,因為post不能發(fā)過去,只能用get??纯?/span>Goole或是yahoo等知道了!

 

四、表單提交中getpost方式的區(qū)別歸納如下幾點:

1.  get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。

2.  get是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應(yīng),在URL中可以看到。post是通過HTTP post機制,將表單內(nèi)各個字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。

3. 對于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。

4.  get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。

5.  get安全性非常低,post安全性較高。

 

             

Get Post 的區(qū)別( jsp)

 

Get Post 的區(qū)別好像比我想象中的大,最近在使用 Tomcat 進(jìn)行開發(fā)的過程中至少發(fā)現(xiàn)兩點:

 

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

 

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

 

所以,如果這些數(shù)據(jù)是中文數(shù)據(jù)而且是非敏感數(shù)據(jù),那么使用 get;如果用戶輸入的數(shù)據(jù)不是中文字符而且包含敏感數(shù)據(jù),那么還是使用 post為好。

 

 

 

他們傳遞參數(shù)的時候編碼不一樣,get方式不進(jìn)行編碼直接進(jìn)行傳遞,所以別人可以看見你的傳遞內(nèi)容(當(dāng)然可以采取措施避免用戶看到內(nèi)容,比如用Javascript動態(tài)組織URL),post方式是經(jīng)過編碼傳輸?shù)?,而且不存在特殊字符傳遞出錯問題

 

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多