get和post的区别


2008-06-15 20:27:23|  分类: 默认分类|字号 订阅

1 get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各 个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到 ACTION属性所指的URL地址。用户看不到这个过程。

2 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。两种方式的参数都可以用Request来获得。

3get传送的数据量较小,不能大于2KBpost传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KBIIS5中为100KB

4get安全性非常低,post安全性较高。

5<form method="get" action="a.asp?b= b"><form method="get" action="a.asp">是一样的,也就是说,action页面后边带的参数列 表会被忽视;而<form method="post" action="a.asp?b=b"><form method= "post" action="a.asp">是不一样的。

    如果要在浏览器中发送表单或数据给服务器端,使用 GET 方法方便直观,缺点是访问该网站的用户也可以修改 URL 串后发送给服务器,如果程序处理得不够好很容易出错,而且 GET 方法可能会产生很长的 URL ,或许会超过某些浏览器与服务器对 URL 长度的限制。   GET 传递的字符串长度不能超过 250 个字符,如果超长,浏览器会自动截断,导致数据缺失。另外, GET 方法不支持 ASCII 字符之外的任何字符,比如包含有汉字或其他非 ASCII 字符时,需要使用额外的编码操作,虽然有时候浏览器也能自动完成(可以使用 url_encode url_decode 函数,使用方法详见 2.9.2 节)。


    
POST方法发送变量数据时,对于用户来说是不透明的,按HTTP协议来说,数据附加于header的头信息中,用户不能随意修改,这对于Web应用程序而言,安全性要好得多,而且使用POST可以发送大体积的数据给Web服务器。

    
因为POST是随HTTPheader信息一起发送的,当触发POST表单提交后,如果用户浏览页面时单击后退按钮,浏览器不会自动重发POST数据。如果用户此时单击刷新按钮,将会有数据已经过期,是否重新提交表单的提示,这一点不如GET使用方便。使用GET传值时,即便用户使用后退刷新按钮,浏览器的URL地址也是仍然存在的。

因此,我们在开发中需要根据实际应用灵活选择GETPOST来提交表单数据。

    
值得一提的是,如果在HTML中缺少表单结束标记</form>,那么整个表单是不会触发任何提交动作的。在实际开发时,一些粗心的人会发现单击按钮没有任何反映,其实细心检查一下表单的代码就可以了,有时即使少写了一个HTML字符,浏览器也不会替我们干活的。GETPOST方法都能实现。GET方法是在访问URL时,使用浏览器地址栏来传递值。我们可以在很多网站上看到这类URL

你可能感兴趣的:(get和post的区别)