2009-10-01 7 views
7

Mon site Web de moteur d'application Google génère des erreurs sur l'URL principale des demandes HEAD car je ne les accepte pas. Selon this, la demande HEAD est pour "testing hypertext links for validity, accessibility, and recent modification"Quand devrais-je répondre aux requêtes HTTP HEAD sur mon site Web?

Quelle devrait être ma réponse "normale" aux demandes HEAD être?

J'ai commencé à accepter les requêtes HEAD, pour empêcher les erreurs de s'afficher dans mes journaux, mais uniquement sur l'url principale.

Quelqu'un peut-il me diriger dans la bonne direction?

Répondre

7

Vous implémentez head méthode (s) juste comme le get un (s), juste en sautant l'écriture du corps. Vous devriez le faire pour chaque URL qui peut être liée, exactement parce qu'un vérificateur bien-sage qui valide les liens devrait utiliser HEAD quand il n'a pas besoin du corps.

simple est souvent de prendre en compte la fonctionnalité get un procédé auxiliaire séparé _foo qui prend un argument needbody boolean - get appelle self._foo(True), head appels self._foo(False). _foo, si elle voit son argument needbody est faux, elle peut être libérée dès qu'elle a généré tous les en-têtes (et doit s'assurer qu'elle ne génère pas de corps).

+5

Une autre option, dans webapp, consiste à définir une classe de base qui implémente head en appelant self.get puis en effaçant le corps. C'est inefficace, bien sûr, mais vous permet de le contourner plus efficacement au cas par cas. –

+0

@Nick Quelle est la meilleure façon d'effacer le corps? –

+1

@Bryce 'self.response.clear()'. –

Questions connexes