表单的post和get区别?

如题所述

Form提供了两种数据传输的方式——get和post。虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响。虽然为了方便的得到变量值,Web容器已经屏蔽了二者的一些差异,但是了解二者的差异在以后的编程也会很有帮助的。
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的默认方法。
使用Post传输的数据,可以通过设置编码的方式正确转化中文;而Get传输的数据却没有变化。在以后的程序中,我们一定要注意这一点。追答

1、Get 方法通过 URL 请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于 action 属性所指程序的 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 提交数据

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-11-21
通过 get 或者 post 方法都可以获得 Form 的数据,两者主要区别在于以下几方面:
get:
URL 改变,在URL 里显示 HTML Form 参数的 name/value 值。
只适合有少量参数的 HTML Form,因为 URL 长度有字符
涉及安全性的信息,比如密码,不能用 get,因为会在 URL 上显示,不安全。
post:
URL 不改变,不在 URL 里显示 HTML Form 的数据。
Form 提交的信息没有长度
涉及安全性的信息,如密码,应采用 post 方式。

表单提交中get和post方式的区别
一、指代不同 1、get:从指定的资源请求数据。2、post:向指定的资源提交要被处理的数据。二、安全性不同 1、get:GET 的安全性较差,因为所发送的数据是 URL 的一部分。2、post:POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。POST 请求不会被缓存,请求不会保留在...

表单提交中get和post方式的区别
1.get是从服务器上获取数据,post是向服务器传送数据。 2.get是把参数数据 队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各 个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。 3.对于get方式...

表单提交中get和post方式的区别
1.get是从服务器上获取数据,post是向服务器传送数据。2.get是把参数数据 队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各 个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。3.对...

表单提交中get 和post方式的区别
一、回退处理不同 1、get :在浏览器回退时不进行其它操作。2、post:在浏览器回退时POST会再次提交请求。二、地址处理不同 1、get :产生的URL地址可以被Bookmark。2、post:产生的URL地址不可以被Bookmark。三、参数处理不同 1、get :请求参数会被完整保留在浏览器历史记录里。2、post:POST中的...

表单的post和get区别?
1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。3、...

HTML表单提交方式之POST和GET
在HTML中,表单提交方式主要分为POST和GET两种。GET方式将表单数据作为URL变量发送,POST方式则通过HTTP post的方式发送。两者区别在于:GET一次发包,POST两次发包;GET请求结果可缓存,POST结果不可缓存;GET参数在URL中显示,POST参数在请求主体中;GET数据长度有限制,POST无限制。在选择使用方法时,应考虑...

post 与 get 有什么区别啊?
二者主要区别如下: 1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。 2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到...

get和post请求的区别
GET和POST区别是参数位置不同、安全性不同、数据大小限制不同、缓存处理不同。1、参数位置 GET请求的参数通常附加在URL的末尾,以问号(?)分隔。这种方式使得URL更加简洁明了,方便阅读和理解。但是,由于参数直接附加在URL上,GET请求容易受到网络窃听和注入攻击。因此,在传递敏感信息时,应尽量避免使用...

post和get的区别
区别一:语义上的区别 1、Get向服务器请求数据。依照HTTP协议,get 是用来请求数据。2、Post向服务器发数据。依照HTTP协议,Post的语义是向服务器添加数据,也就是说按照Post的语义,该操作是会修改服务器上的数据的。区别二:服务器请求的区别 1、Get请求是可以被缓存的,举个例子,你访问baidu.com,...

JSP中,表单的结构METHOD的GET方式和POST方式有什么区别?
Post和Get 方法有如下区别:1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.3.Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get之所以也能传送数据,只是...

相似回答