GET和POST都是HTTP的请求方法。
GET:申请获取资源,而不对服务器产生任何其他影响。
POST:客户端向服务器提交数据的方法。这种方法会影响服务器:服务器可能根据收到的数据动态创建新的资源,也可能更新原有的资源。
GET和POST的区别:
- POST更安全:GET方法会把参数放到url后边进行传递,而POST把参数放到Request body里边;GET方式请求的数据会被浏览器保存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号和密码等,POST不会保存记录。
- POST发送数据更大:GET把参数放到url后边传递,而浏览器的url长度有限,这里要注意GET的长度并没有明为规定有限,只是因为它受限于浏览器才变得有限。
- POST发送数据类型更多:GET只能发送ASCII字符。
- POST用于修改和写入数据,GET一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是GET提交),目的是资源的获取,读取数据
- GET回退浏览器无害,POST会再次提交请求(GET方法回退后浏览器再缓存中拿结果,POST每次都会创建新资源)
- POST更慢:有的浏览器发送时,GET和POST的发送方式不同:GET发送报文时,把Header和body一起发送;POST分两次发送,先发送Header,在发送body。