1、用途:Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。
2、效率:get >post,因为Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面直接传递,而Post将数据放在数据体中传递;
3、安全性:Get是不安全的,因为在传输过程,数据被放在请求的URL中,相对而言post较安全,可以加密;
4、数据量:Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据;
5、通用性:Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集;Get是Form的默认方法。
参考百度:
get方式:
A. 表单默认提交的方式,浏览器地址栏直接输入 一个地址,使用链接访问。 B. 表单中的数据会添加到请求行,放置的数据有限, 而且数据会直接在浏览器的地址栏显示,不安全。 C. get方式,一般不适合用于浏览器向服务器提交 数据。适用于请求某个资源。 post方式: A.对表单,设置了method="post"。 B.表单中的数据会添加到实体内容里,可以存放大量 数据。相对于get方式,会安全一些。 (不管哪种方式,都不是绝对安全的,因为浏览器 不会对数据进行加密) C.一般如果有大量的数据需要提交给服务器。 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的默认方法。 总结起来:get方式:以URL字串本身传递数据参数,在服务器端可以从'QUERY_STRING'这个变量中直接读取,效率较高,但缺乏安全性,也无法来处理复杂的数据(只能是字符串,比如在servlet/jsp中就无法处理发挥java的比如vector之类的功能); post方式:就传输方式讲参数会被打包在数据报中传输,从CONTENT_LENGTH这个环境变量中读取,便于传送较大一些的数据,同时因为不暴露数据在浏览器的地址栏中,安全性相对较高,但这样的处理效率会受到影响。 POST 还是 GET? 如果表单处理服务器既支持 POST 方法又支持 GET 方法,那么你该选择哪种方法呢?下面是有关这方面的一些规律: * 如果希望获得最佳表单传输性能,可以采用 GET 方法发送只有少数简短字段的小表单。 * 一些服务器操作系统在处理可以立即传递给应用程序的命令行参数时,会限制其数目和长度,在这种情况下,对那些有许多字段或是很长的文本域的表单来说,就应该采用 POST 方法来发送。 * 如果你在编写服务器端的表单处理应用程序方面经验不足,应该选择 GET 方法。如果采用 POST 方法,就要在读取和解码方法做些额外的工作,也许这并不很难,但是也许你不太愿意去处理这些问题。 * 如果安全性是个问题,那么我们建议选用 POST 方法。GET 方法将表单参数直接放在应用程序的 URL 中,这样网络窥探者可以很轻松地捕获它们,还可以从服务器的日志文件中进行摘录。如果参数中包含了信用卡帐号这样的敏感信息,就会在不知不觉中危及用户的安全。而 POST 应用程序就没有安全方面的漏洞,在将参数作为单独的事务传输给服务器进行处理时,至少还可以采用加密的方法。 * 如果想在表单之外调用服务器端的应用程序,而且包括向其传递参数的过程,就要采用 GET 方法,因为该方法允许把表单这样的参数包括进来作为 URL 的一部分。而另一方面,使用 POST 样式的应用程序却希望在 URL 后还能有一个来自浏览器额外的传输过程,其中传输的内容不能作为传统 <a> 标签的内容。