GET POST方法可能最简单的理解就是GET方法是获取数据,POST方法是提交数据, 其实这两个方法都可以提交或者获取数据的,只是他们传输数据的机制有点不同。
GET方法传输数据的格式:
/test/demo_form.asp?name1=value1&name2=value2
URL中传输的数据是:name1=value1&name2=value2
POST方法传输数据的格式:
POST /test/demo_form.asp HTTP/1.1
Host: http://w3schools.com
name1=value1&name2=value2
Body中传输的数据是:name1=value1&name2=value2
通过传输数据的方式,就可以很明显的看出来, GET的数据的方法在URL地址里面, POST方法的数据在body里面(非URL中),
这个就是他们传输数据的区别, 然后他们的安全性就不同
1、安全级别不一样,通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。Post是可以加密传输数据的
2、POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。
3、他们传输数据的大小也不同,.get、post本来没有长度限制,但是大多数浏览器对get有1024的限制, 服务器对post有100KB左右的限制
总结一下,Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET",实质上,GET和POST只是发送机制不同,并不是一个取一个发!