post
地址栏不会出现一大串?bjnghfgreygt这样的东西 如果是get,就会出现了 1、Get 方法通过 URL 请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于 action 属性所指程序的 url 后,如[url]http://www.mdm.com/test.asp?name=asd&password=sad[/url],数据都会 直接显示在 url 上,就像用户点击一个链接一样;Post 方法通过 HTTP post 机制,将表单内各字段名称与其内容放置在 HTML 表头(header)内一起传送给服务器端交由 action 属性能所指的程序处理,该程序会通过标准输入(stdin)方式,将表单的数据读出并加以处理 2、 Get 方式需要使用 Request.QueryString 来取得变量的值;而 Post 方式通过 Request.Form 来访问提交的内容 3、Get 方式传输的数据量非常小,一般限制在 2 KB 左右,但是执行效率却比 Post 方法好;而 Post 方式传递的数据量相对较大,它是等待服务器来读取数据,不过也有字节限制,这是为了避免对服务器用大量数据进行恶意攻击,根据微软方面的说法,微软对用 Request.Form() 可接收的最大数据有限制,IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节 建议:除非你肯定你提交的数据可以一次性提交,否则请尽量用 Post 方法 4、Get 方式提交数据,会带来安全问题,比如一个登陆页面,通过 Get 方式提交数据时,用户名和密码将出现在 URL 上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用 Post 方法;Post 方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框 建议:出于安全性考虑,建议最好使用 Post 提交数据 |
在
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” 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 并没有什么变化,返回的结果是: 通过 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 方法。 |