Post和Get的区别

 

一、POST和GET的区别:
Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法。二者主要区别如下:
1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据
2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。
3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。
4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。
5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
6、Get是Form的默认方法。

二、Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机。
当你在浏览网站的时候,Web服务器会先送一小段资料放在你的计算机上,Cookie 会帮你把在网页上所输入的文字或是一些选择,都记录下来。当下次你再光临同一个网站,Web服务器会先看看有没有它上次留下的Cookie资料,有的话,就会依据Cookie里的内容来判断使用者,送出特定的网页内容给你。
 
三、 POST和GET是表单提交的两种方式,都是将客户端的表单提交给服务器进行处理。GET方法是把数据参数队列(query string)加到一个URL上,值和表单是一一对应的。比如说firstname=xiaoming&lastname=wang,在队列里表单元素名和对应的值作为一组数据,各组数据之间用一个&符号分开,空格用+号替换,特殊的符号转换成十六进制的代码。用Get方式提交数据时,能在浏览器的地址栏中看到这些数据,这样数据就有可能被记录下来,或更改。通常GET方法还限制字符的大小。因此,不建议用Get方法传输大流量的或重要数据。POST方法可以没有时间限制的传递数据到服务器,用户在浏览器端是看不到这一过程的,所以POST方法比较适合用于发送一个保密的(比如信用卡号)或者比较大量的数据到服务器。
  ASP作为服务器端的脚本,可以通过Request.QueryString来获取GET方式提交上来的数据。在客户端的地址栏中,可以看到这些数据。POST方式提交的数据要通过Request.Form()来获取。如果某个Request集合中的数据需要经常使用,就要将它赋给一个变量,而不是老是用Request.Querystring()或Request.Form()来取值。在ASP中还需要注意的是,POST方式提交多于100K的数据时要特殊照顾。
  另外,如果你能确定,客户端提交上来的数据一定存在,否则不要使用Request集合来获取数据,因为它会依次去Request对象的五个集合(ClientCertificate: 所有客户证书的信息的集合;Cookie的集合;Form集合:填写在HTML的表单中所有的数据的集合;QueryString:查询字符串的所有值的集合;ServerVaribles集合。)中检索数据,其性能可想而知。
posted @ 2008-08-27 10:20  yixinge  阅读(465)  评论(0编辑  收藏  举报