MVC应用程序中添加http标头的正确位置在哪里:在控制器中还是在视图中?
(从技术上讲,可以在控制器或视图中进行操作,但我不清楚哪种解决方案更适合MVC模型)
MVC 模式的目的是提供明确的职责分离。 视图处理表示,控制器处理事件,模型提供业务逻辑。 (我意识到许多Web框架并不完全遵循MVC模式。 例如,Django 称自己为 MVT(或类似的东西)。
因此,由于 HTTP 标头是演示文稿详细信息,因此它们应位于视图中。 编写良好的 MVC 应用程序将允许您使用相同的控制器和模型获得非基于 Web 的视图(例如桌面版本)。 将标头放入控制器中会打破这种明确的分离。
我认为这取决于场景。 例如,控制器可能需要某些安全凭据,如果它们不在请求/会话中,则会向客户端发送一个Location:
标头,将它们定向到登录视图。
视图可以实现发送的 HTTP 标头来控制内容缓存等内容。