十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
从HTTP报文层面来看,GET请求将信息放在URL,POST将请求信息放在请求体中。这一点使得GET请求携带的数据量有限,因为URL本身是有长度限制的,而POST请求的数据存放在报文体中,因此对大小没有限制。而且从形式上看,GET请求把数据放URL上感觉不太安全,而POST请求把数据放在请求体里似乎安全一些。实际上想要获取POST请求中的内容还是很容易的,因此两者在安全性上其实没有太大差异,想要实现安全的信息传输还是得靠HTTPS。
从数据库层面来看,GET符合幂等性和安全性,而POST请求不符合。这个其实和GET/POST请求的作用有关。按照HTTP的约定,GET请求用于查看信息,不会改变服务器上的信息;而POST请求用来改变服务器上的信息。正因为GET请求只查看信息,不改变信息,对数据库的一次或多次操作获得的结果是一致的,认为它符合幂等性。安全性是指对数据库操作没有改变数据库中的数据。
从其他层面来看,GET请求能够被缓存,GET请求能够保存在浏览器的浏览记录里,GET请求的URL能够保存为浏览器书签。这些都是POST请求所不具备的。缓存是GET请求被广泛应用的根本,他能够被缓存也是因为它的幂等性和安全性,除了返回结果没有其他多余的动作,因此绝大部分的GET请求都被CDN缓存起来了,大大减少了Web服务器的负担。