7 Stimmen

MVC: http-Header hinzufügen: Controller oder Ansicht?

Wo ist ein richtiger Ort, um http-Header in MVC-Anwendungen hinzuzufügen: im Controller oder in der Ansicht?

(Technisch ist es möglich, entweder in Controller oder Ansicht zu tun, aber es ist nicht klar für mich, welche Lösung besser mit MVC-Modell passt)

4voto

AJ. Punkte 26360

Ich denke, das hängt vom jeweiligen Szenario ab. So kann ein Controller beispielsweise bestimmte Sicherheitsnachweise verlangen, und wenn diese in der Anfrage/Sitzung nicht vorhanden sind, wird ein Location: Kopfzeile an den Kunden gesendet werden, die ihn zu einer Login-Ansicht führt.

Eine Ansicht kann einen HTTP-Header implementieren, der gesendet wird, um z. B. die Zwischenspeicherung von Inhalten zu steuern.

4voto

gdw2 Punkte 6802

Der Zweck des MVC-Musters besteht darin, eine klare Trennung der Aufgaben zu bieten. Die Ansicht kümmert sich um die Darstellung, der Controller um die Ereignisse und das Modell um die Geschäftslogik. (Mir ist klar, dass viele Web-Frameworks dem MVC-Muster nicht genau folgen. Django, zum Beispiel, nennt sich selbst ein MVT (oder so ähnlich)).

Da HTTP-Header ein Präsentationsdetail sind, sollten sie daher in die Ansicht aufgenommen werden. Eine gut geschriebene MVC-Anwendung würde es Ihnen ermöglichen, nicht webbasierte Ansichten (z. B. eine Desktop-Version) mit demselben Controller und Modell zu verwenden. Würden die Header in den Controller eingefügt, würde diese klare Trennung aufgehoben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X