Pregunta

Estoy recibiendo peticiones HEAD en mi solicitud, y se preguntaba sobre la mejor manera de manejarlos. Las opciones son:

  • convertirlos a GET, GET proceso normalmente, entonces:
    • despojar el cuerpo (aunque no estoy seguro de cómo -. No parece response.content = '' hacerlo
    • parece motor de aplicación de auto-Strips el cuerpo, dando una advertencia "Dejar caer cuerpo inesperado en respuesta a la petición HEAD"

Parece que esta es limpio, y se puede escribir muy bien el uso de decoradores o middleware.

  • Manejar cada petición HEAD especialmente:
    • que esto significa que se podrían evitar un almacén de datos de acceso en algunos (muchos?) De los casos.
    • Existe un riesgo, por lo visto, que el middleware que establece se evitará la cabecera Content-longitud de hacerlo por este enfoque.

Algo más? ¿Qué debo hacer? ¿El uso de App Engine a hacer la diferencia aquí? ¿Hay detalles sutiles; Si es así, ¿hay middleware apropiado utilizar? Para convertir a GET, es `request.method = "GET" suficiente (que parece que funciona)?

¿Fue útil?

Solución

¿Se tiene la intención para su aplicación a las solicitudes mango cabeza o vienen éstos de alguna fuente anónima? Por cierto, no está obligado a cumplir con una petición HEAD. Usted puede simplemente volver con un código de estado de 405 (Método no permitido) y proporcionar la cabecera Permitir con GET o lo que significaría para mango.

No creo que request.method configurar manualmente para GET es significativa; con toda probabilidad, se acaba de devolver una respuesta que es mayor que lo que el solicitante deseaba. Sólo querían ver las cabeceras de la respuesta. Si no desea manejar la cabeza, hacer el enfoque de cabecera 405 y Permitir.

En general, un cliente envía una petición HEAD, ya que están tratando de ser inteligentes acerca de no manejar una respuesta completa si no se necesitan. Ellos están comprobando para ver si el Content-Length ha cambiado desde la última vez que vieron a la respuesta, o que quieren ver de la última modificación o Expira cabecera.

Sin duda, es de buen comportamiento para su aplicación a las solicitudes cabezal del mango con gracia, pero no tiene que hacerlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top