2011-05-19 21 views
7

¿Dónde está el lugar correcto para agregar encabezados http en aplicaciones MVC: en el controlador o en la vista?MVC: agregar encabezado http: ¿controlador o vista?

(Técnicamente es posible hacerlo, ya sea en el controlador o la vista, pero no es claro para mí qué solución suites con el modelo MVC mejor)

Respuesta

3

El propósito del patrón MVC es ofrecer una clara separación de tareas. La vista maneja la presentación, el controlador maneja los eventos y el modelo proporciona la lógica de negocios. (Me doy cuenta de que muchos frameworks web no siguen exactamente el patrón MVC. Django, por ejemplo, se llama MVT (o algo así)).

Por lo tanto, dado que los encabezados HTTP son un detalle de presentación, deben ir a la vista. Una aplicación MVC bien escrita le permitiría tener vistas no basadas en la web (como una versión de escritorio) usando el mismo controlador y modelo. Poner los encabezados en el controlador rompería esta clara separación.

2

creo que depende del escenario. Por ejemplo, un controlador puede requerir ciertas credenciales de seguridad y, si no están presentes en la solicitud/sesión, se enviará un encabezado Location: al cliente que lo dirigirá a una vista de inicio de sesión.

Una vista puede implementar un encabezado HTTP que se envía para controlar cosas como el almacenamiento en caché de contenido.

Cuestiones relacionadas