从本质上说GET和POST都是HTTP的请求方法之一,体现在HTTP报文里就是一个单词的区别,具体行为要看你的服务端对待不同方法的方式,不可一概而论。
通常GET用于获取数据,浏览器使用GET提交的参数是追加在URL后的。
通常POST用于提交数据,参数放进请求正文里。HTML里的表单一般用x-www-form-urlencoded,就是GET的那种参数串。当然你愿意传JSON或者XML也没问题,一切取决于你的后端如何处理。
从浏览器的角度来讲,使用POST最大的不同就是用户刷新页面的时候会有重复提交的警告。
从安全性上来说,如果是HTTP明文传输的话GET和POST的“安全性”是一样的,另外GET的参数对用户可见,且可能留在浏览器历史记录里。
你也不用纠结所谓幂等不幂等的说法,还是一切看后端。事实上很多GET操作根本就不幂等。但是还是建议根据具体的语义选择合适的动词,前后端协商一致。