Ich erhalte HEAD-Anfragen in meiner Anwendung und frage mich, wie ich sie am besten behandeln kann. Optionen sind:
response.content = ''
scheint es nicht zu tun. Es scheint, das ist sauber und kann gut mit Dekoratoren oder Middleware geschrieben werden.
Sonst noch etwas? Was soll ich tun? Macht der Einsatz von App Engine hier einen Unterschied? Gibt es subtile Details? Wenn ja, gibt es eine geeignete Middleware? Um in GET zu konvertieren, ist 'request.method="GET" ausreichend (es scheint zu funktionieren)?
Haben Sie vor, dass Ihre Anwendung HEAD-Anfragen bearbeitet, oder stammen diese aus einer anonymen Quelle? Sie sind sicherlich nicht verpflichtet, eine HEAD-Anfrage zu erfüllen. Sie können einfach mit einem Statuscode von 405 (Methode nicht erlaubt) zurückkehren und den Header Allow mit GET angeben oder was immer Sie damit umgehen wollen.
Ich denke nicht, dass das manuelle Setzen von request.method auf GET sinnvoll ist; Wahrscheinlich geben Sie nur eine Antwort zurück, die größer ist als das, was der Anfragende wollte. Sie wollten nur die Header für die Antwort sehen. Wenn Sie den HEAD nicht behandeln möchten, führen Sie den 405- und Allow-Header-Ansatz aus.
Im Allgemeinen sendet ein Client eine HEAD-Anfrage, weil er versucht, schlau zu sein, wenn er eine vollständige Antwort nicht verarbeiten muss, wenn er dies nicht tun muss. Sie überprüfen, ob sich die Inhaltslänge seit dem letzten Auftreten der Antwort geändert hat, oder sie möchten den Header Last-Modified oder Expires sehen.
Es ist sicherlich gut, dass Ihre Anwendung HEAD-Anfragen elegant bearbeitet, aber Sie müssen es nicht.
Tags und Links django http google-app-engine request head