MVC:添加http标头:控制器还是视图?

发布于 2024-11-08 00:44:55 字数 98 浏览 1 评论 0原文

在 MVC 应用程序中添加 http 标头的正确位置是在控制器中还是在视图中?

(从技术上讲,可以在控制器或视图中执行,但我不清楚哪种解决方案更适合 MVC 模型)

Where is a correct place to add http headers in MVC applications: in controller or in view?

(Technically it is possible to do either in controller or view, but it is not clear for me what solution better suites with MVC model)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

装迷糊 2024-11-15 00:44:55

MVC 模式的目的是提供清晰的职责分离。视图处理表示,控制器处理事件,模型提供业务逻辑。 (我意识到许多 Web 框架并不完全遵循 MVC 模式。例如,Django 将自己称为 MVT(或类似的东西))。

因此,由于 HTTP 标头是表示细节,因此它们应该出现在视图中。编写良好的 MVC 应用程序将允许您使用相同的控制器和模型拥有非基于 Web 的视图(例如桌面版本)。将标头放入控​​制器中会打破这种明显的分离。

The purpose of the MVC pattern is to offer a clear separation of duties. The view handles presentation, the controller handles events, and the model provides the business logic. (I realize many web frameworks don't follow the MVC pattern exactly. Django, for example, calls itself a MVT (or something like that)).

Therefore, since HTTP headers are a presentation detail, they should go in the view. A well-written MVC app would allow you to have non-web-based views (such as a desktop version) using the same controller and model. Putting the headers in the controller would break this clear separation.

桜花祭 2024-11-15 00:44:55

我认为这取决于场景。例如,控制器可能需要某些安全凭证,如果它们不存在于请求/会话中,则 Location: 标头将被发送到客户端,将它们引导到登录视图。

视图可以实现发送的 HTTP 标头来控制内容缓存等内容。

I think it depends on the scenario. For example, a controller may require certain security credentials and if they are not present in the request/session, a Location: header would be sent to the client directing them to a login view.

A view may implement an HTTP header being sent to control such things as caching of content.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文