#model-view-controller #http #http-headers
#модель-представление-контроллер #http #http-заголовки
Вопрос:
Где правильное место для добавления http-заголовков в приложениях MVC: в контроллере или в представлении?
(Технически это можно сделать либо в контроллере, либо в представлении, но мне не ясно, какое решение лучше подходит для модели MVC)
Ответ №1:
Цель шаблона MVC — предложить четкое разделение обязанностей. Представление обрабатывает представление, контроллер обрабатывает события, а модель обеспечивает бизнес-логику. (Я понимаю, что многие веб-фреймворки не совсем соответствуют шаблону MVC. Django, например, называет себя MVT (или что-то в этом роде)).
Следовательно, поскольку HTTP заголовки являются деталью представления, они должны отображаться в представлении. Хорошо написанное приложение MVC позволило бы вам создавать представления, отличные от веб-версий (например, настольную версию), используя тот же контроллер и модель. Помещение заголовков в контроллер нарушило бы это четкое разделение.
Ответ №2:
Я думаю, это зависит от сценария. Например, контроллеру могут потребоваться определенные учетные данные безопасности, и если они отсутствуют в запросе / сеансе, клиенту будет отправлен Location:
заголовок, направляющий их к представлению входа.
Представление может реализовывать HTTP-заголовок, отправляемый для управления такими вещами, как кэширование содержимого.