最近接到一个需求,接口文档是这样子的:提交表单时,弹窗提醒用户是否打印,如果用户点击打印,就将表单里的相关信息封装成JSON格式的数据经过UrlEncode编码后通过GET请求直接调用对方打印接口进行打印操作。我很疑惑的是,这样做安全吗?首先是接口,万一遇到恶意攻击,恶意调用该接口是否会造成该接口崩溃(不知道对方是如何处理这种情况);对方拿到GET请求后,通过UrlEncode解码也能获取到数据。
相信GET、POST请求大家都非常了解。大家也经常使用的两种请求方法,有没有公司强制规范所有接口都必须用POST请求的。还在学校那会,做一些简单的设计呀,登录啥的都是直接用的GET效率还挺高。POST、GET请求到底有什么不同呢?
1、首先安全,刚刚开头就讲了安全性问题。GET安全性较差,GET请求所发送的数据是URL的一部分,大家都能看到里面的数据。而POST则不同,POST请求参数不会被保存在浏览器历史或者WEB服务器日志中,数据也不会显示在URL中。
GET请求
Postman中POST请求
平时开发用Postman测试POST请求时一般将请求参数写下Body下,并采用JSON的格式。
2、数据长度的限制。GET方法在发送请求时是将参数添加到URL中的,而URL的长度是受限制的(每个浏览器限制的长度也有差异);POST的请求理论上来说是不受限制。
3、数据类型限制。GET请求只允许ASCII字符,而POST没有限制。
4、针对浏览器不同,GET和POST请求也有些许差异。对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200;POST请求浏览器先发送header,服务器响应100 ,浏览器再发送data,服务器响应200 (并不是所有的浏览器都是这样)。这是不是意味着GET请求可以用来优化网站的性能呢?
GET请求
POST请求