表单提交中get和post方式的区别

 我来答
就烦条0o
2016-11-28 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
Post和Get都是表单属性Method的可选值,Method的默认值为Get。

两者的主要区别在于:

简单的讲,大概就下边两句话:

post传递数据量较大,较安全,用request.form("")取值。
get传递数据量较小,没有post安全性强,用request.querystring("取值") 。

1、服务器端获取数据的方式不同。

post方式传递的数据,必须用request.form("")获取。

get方式传递的数据,必须用request.querystring("")获取。

注意:虽然两种提交方式可以统一用Request("")来获取提交数据,但是这样对程序效率有影响,不推荐使用。

2、post比get安全性较强。

在客户端,Get方式在通过URL提交数据,提交后在地址栏中的地址如图所示:

而Post提交后地栏不变,如图所示:

比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。如果:
>登陆页面可以被浏览器缓存;
>其他人可以访问客户的这台机器。
那么,别人即可以从浏览器的历史记录中,读取到此客户的账号和密码。

所以,在某些情况下,get方法会带来严重的安全性问题。在Form中,建议使用post方法。

3、post比get传递数据量大。

ID的url长度是有限制的,当url过长时会自动截取超长字符。这样就容易引发一个问题:当传递的参数过多,导致url过长时,url自动截取超长字符,最终传递参数部分获取不到。以下是从别人的文章里摘录的一段话(“IE的Get请求(URL)的最大长度限制”问题的解决办法):

给第三方提供接口的时候,设计了一个传入大量id的接口,结果昨天测试发现,传入了100个ID,结果只返回55个的数据,一开始以为是API有问题,后台调试才发现,原来是URL自己截断了!后来仔细了解了一下,原来通过GET方式请求,并传递一个过长的参数的话,IE会自动的截去超出最大长度的字符。微软的权威解释,IE的url最大长度是2083个字节,可以用于GET传递数据的长度是2048个字节。Maximum
URL length is 2,083 characters
in Internet Explorer.http://support.microsoft.com/default.aspx?scid=kb;EN-US;q208427

其实也比较容易解决,只要换成post请求就可以了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式