闲来无事,来总结下GET请求和POST请求的区别
大致分了四个方面:效率,安全,数据大小,缓存
1.效率
GET:从服务器获取数据(也可以上传数据,参数就是),效率较高;
POST:可以向服务器发送数据和下载数据,效率不如GET;
2.安全
GET:所有参数全部包装在URL中,明文显示,且服务器的访问日志会记录,非常不安全
POST:URL中只有资源路径,不包含参数,参数封装在二进制的数据体中,服务器也不会记录参数,相对安全。所有涉及用户隐私的数据都要用POST传输;
POST的安全是相对的,对于普通用户来说他们看不到明文,数据封装对他们来说就是屏障。但是对于专业人士,它们会抓包会分析,没有加密的数据包对他们来说也是小case。
所以POST仅仅是相对安全,唯有对数据进行加密才会更安全。当然加密也有被破解的可能性,理论上所有的加密方式都可以破解,只是时间长短的问题。而加密算法要做的就是
使得破解需要的时间尽量长,越长越安全。由于我们也需要解密,加密算法太过复杂也并非好事,这就要结合使用情况进行折中或者足够实际使用即可。绕的有点远,具体的话,
我将在后续的文章之中介提及,并介绍一些常用的加密算法。
3.数据大小
HTTP协议中均没有对GET和POST请求的数据大小进行限制,但是实际应用中它们通常受限于软硬件平台的设计和性能;
4.缓存
GET:不同的浏览器和服务器不同,一般限制在2~8K之间,更加常见的是1k以内;
POST:方法提交的数据比较大,大小靠服务器的设定值限制。