我刚刚听说使用HTTP标头来控制业务流程是不好的做法。有人可以给我解释原因吗?
在我的情况下,默认响应仅包含简单信息,但如果添加X-Full-Info
标题,则会有更多信息,但请求处理将花费更多时间。为什么这是不好的做法?我被建议使用查询参数。
答案 0 :(得分:2)
一个原因是缓存。假设您正在使用GET,结果可能会被缓存,如果结果是从缓存提供的,您的http标头将被忽略。 (远程缓存或浏览器的缓存)
但是如果使用查询参数来选择结果,缓存将知道返回哪个结果,并且不会返回错误的结果。
您可以尝试使用“Vary”标头解决此问题,但对该标头的支持意味着您需要做更多的工作,并且对该标头的支持并不普遍:https://blogs.msdn.microsoft.com/ieinternals/2009/06/17/vary-with-care/