GET 和 POST是HTTP方法最常用的两个方法。
GET方法是最简单的HTTP方法,它的主要任务是要求服务器获得一个资源并把资源发回来。这个资源可能是一个HTML页面,一个JPEG、一个PDF文档等等。而POST是一种更强大的请求,就像是GET++。利用POST,可以请求某个东西,与此同时向服务器发送一些表单数据。GET方法和POAT方法都能发送数据。但是GET能发送的总字符数是有限的(取决于浏览器)。并且GET发送的数据会追加到URL后面,在浏览器地址栏中显示出来,会被用户看到。最好不要把口令或其他敏感数据作为GET请求的一部分发送!而用POST方法会把数据放在消息体中。下面两张图是GET方法和POST方法请求剖析。参考书籍《Head First Servlets & JSP》
另外GET请求可以建立书签,POST请求不能。GET是幂等的,它只是要得到东西,不会修改服务器上的任何内容。而POST不适幂等的,POST体中的提交数据可能用于不可你转的事务。
最后,其实俩者本质上差不多。安全性来说,想要获取请求数据也是轻而易举。幂等不幂等也只是约定俗称罢了。具体也是取决于自己在服务器那块逻辑。如果在get方法下写了篡改数据的逻辑也是可以正常运行的。但这样实际就不幂等了。