87403867 2020-09-24
背景:
新来的同事问我,我的项目中出现了很多options的请求,然后后台服务都挂了,我不知道如何处理;
http协议
其实通过http方式我们最常用的就是:GET,POST; 他们都可以作为前端和后台的数据交换使用;
options在什么情况下出现
以上三种情况出现就会出现options请求了,说白就是为了服务器安全,例如:同源策略引发这个规则;
options通常是浏览器自动发起的,目的就是去服务器检查一下接下来要到用的方法(GET、POST、PUT、detele)在服务器上是否支持;
对于服务器该如何处理
检查以下内容
A:方式
如果你项目认为是安全的,直接返回200状态码,就可以;
B:方式
如果你项目认为是安全的,直接返回200状态码,就可以
如果不允许你可以放回状态码400或者其他;
options请求影响服务性能,如何优化
本来一个请求就搞定,结果频繁多了很多options必然造成服务的压力;
可以做到options请求做缓存处理,例如: http:// www.**.com/api/getUser 接口会出现 options请求,我们在options返回是做一次options缓存,告知前端以后在此请求这个接口就不要在发options了,服务器响应时可设置 Access-Control-Max-Age 的时间,默认10分钟;
进一步理解options
和options有关的关键字段作用