Frage

Ich erhalte HEAD-Anfragen in meiner Anwendung, und ich frage, auf dem besten Weg, um sie zu behandeln. Die Optionen sind:

  • wandeln sie in GETs, Prozess GET normal, dann gilt:
    • Streifen um den Körper (obwohl ich bin mir nicht sicher, wie -. response.content = '' es nicht zu tun scheint
    • es scheint app Engine Auto-Streifen der Körper, eine Warnung „Dropping unerwarteten Körper als Reaktion auf HEAD-Anforderung“
    • geben

Es scheint, das ist sauber, und geschrieben werden kann schön Dekorateure oder Middleware.

  • Fassen Sie HEAD-Anfrage speziell:
    • das bedeutet, ich könnte einen Datastore-Zugang in einigen vermeiden (viele?) Fälle.
    • Es besteht ein Risiko, es scheint, dass Middleware, die der Content-Length-Header setzt wird daran durch diesen Ansatz verhindert werden.

Sonst noch etwas? Welche soll ich tun? Funktioniert mit App Engine hier einen Unterschied machen? Gibt es feine Details; wenn ja, gibt es entsprechende Middleware zu verwenden? So konvertiert zu bekommen, ist `request.method = "GET" ausreichend (es scheint zu funktionieren)?

War es hilfreich?

Lösung

Haben Sie die Absicht, für Sie Anwendung Griff HEAD-Anfragen, oder werden diese von einer anonymen Quelle kommt? Sie sind verpflichtet, schon gar nicht eine HEAD-Anfrage zu ehren. Sie können nur mit einem Statuscode 405 zurückgeben (Methode nicht erlaubt) und die Header zulassen bieten mit GET oder was auch immer Sie Griff bedeuten.

Ich glaube nicht, dass die manuelle Einstellung request.method zu bekommen, ist sinnvoll; aller Wahrscheinlichkeit nach kehren Sie nur eine Antwort, die größer ist als das, was der Anforderer wollte. Sie wollten nur die Header für die Antwort sehen. Wenn Sie nicht über den Kopf behandeln wollen, führen Sie den 405 und Header-Ansatz zulassen.

Im Allgemeinen sendet ein Client eine HEAD-Anfrage, weil sie versuchen, intelligent zu sein über keine vollständige Antwort der Handhabung, wenn sie nicht brauchen. Sie werden zu überprüfen, ob die Content-Length seit dem letzten Mal geändert hat, dass sie die Antwort sah, oder sie wollen sehen, die Last-Modified oder Expires-Header.

Es ist sicherlich gut erzogene für Ihre Anwendung anmutig Griff HEAD-Anfragen, aber Sie müssen nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top