2009-10-01 9 views
7

El sitio web de mi motor de aplicaciones de google está recibiendo errores en la URL principal de las solicitudes HEAD porque no las estoy aceptando. De acuerdo con this, la solicitud HEAD es para "testing hypertext links for validity, accessibility, and recent modification"Cuándo debería responder a las solicitudes HTTP HEAD en mi sitio web

¿Cuál debería ser mi respuesta "normal" a las solicitudes HEAD?

Empecé a aceptar solicitudes HEAD, para evitar que los errores se muestren en mis registros, pero solo en la URL principal.

¿Puede alguien señalarme en la dirección correcta?

Respuesta

7

Implemente head método (s) al igual que el get uno (s), simplemente omitiendo la escritura del cuerpo. Debería hacer eso para cada URL a la que se pueda vincular, exactamente porque un corrector de buen comportamiento que esté validando los enlaces debería usar HEAD cuando no necesite el cuerpo.

más simple es a menudo para factorizar la funcionalidad get a un método auxiliar separada _foo que toma un argumento booleano needbody-get llama self._foo(True), head llamadas self._foo(False). _foo, si ve que su argumento needbody es falso, puede rescatar tan pronto como haya generado todos los encabezados (y debe asegurarse de que no genere un cuerpo).

+5

Otra opción, en webapp, es definir una clase base que implemente head llamando a self.get y luego borrando el cuerpo. Esto es ineficiente, por supuesto, pero le permite anularlo de manera más eficiente caso por caso. –

+0

@Nick ¿Cuál es la mejor manera de borrar el cuerpo? –

+1

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

Cuestiones relacionadas