参考博文:
浅谈HTTP中Get与Post的区别
1. 数据传递方向:
Get是向服务器发索取数据的一种请求,Post是向服务器提交数据的一种请求
(都是请求,并不是一个取一个发)
- Get:①用于获取信息,而非修改信息 ② 幂等:同一URL的多个请求应该返回同样的结果
- Post:可能改变服务器上的资源
2. 传输信息在HTTP中的位置不同:
- Get:在Http头部传输的
- Post:作为http请求的内容
3. 提交的安全性不同:(Post比Get安全性高)
- Get:请求的数据附在URL之后。将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接(明文提交);
- Post:提交的数据放在HTTP包的包体中,按照变量和值相对应的方式,传递到action所指向URL(依照表单提交)。
4. 大小限制:
- Get:传输的数据量小,因为特定浏览器及服务器限制URL长度
- Post:数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。
5. 支持的字符集:
- Get:限制Form表单的数据集的值必须为ASCII字符;
- Post:支持整个ISO10646字符集。