现在的位置: 首页 > 综合 > 正文

GET与POST的区别

2017年01月09日 ⁄ 综合 ⁄ 共 875字 ⁄ 字号 评论关闭

       一、Get是从服务器上获取数据,Post则是向服务器传送数据;

       二、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL地址的后面,并且两者用“?”连接,而各个变量之间使用“&”连接。Post是将表单中的数据放在form的数据体中(或者说把内容放在了http消息体里),按照变量和值相对应的方式,传递到action所指向URL;

       所以从上第二点也可以得到另外两个结论:

              1、Get传送的数据量较小,不能大于2KB,这主要是因为受URL长度限制。

                   Post传送的数据量较大,所以在上传文件只能使用Post(注意在文件上传时还要加上enctype="multipart/form-data"作为上传文件的标识)。一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB;

              2、Get安全性非常低(因为用户可以通过URL看到)

                   Post安全性较高(其所有操作对用户来说都是不可见的)。但是执行效率却比Post方法要高点(优点造就了其缺点);

              总结:

                      a、如果是包含机密信息的话,建议用Post数据提交方式;

                      b、当数据处理不改变数据模型的状态则推荐使用Get方式,例如在做数据查询。而操作改变了数据模型的状态时,则建议使用Post方式,例如数据添加、修改或删除,送电子邮件等;

       三、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集,所以说在出现一些乱码时有时候可以将Get请求换为Post请求;

       四、Get是Form的默认方法;

       五、Get方式提交来的数据在服务器端用Request.QueryString()来获取,用Post方式提交的数据用Request.Form()来获取;

抱歉!评论已关闭.