Melhores práticas para lidar
-
21-09-2019 - |
Pergunta
Estou recebendo solicitações de cabeça em minha inscrição e me pergunto a melhor maneira de lidar com eles. As opções são:
- Converta -os para obter, processos obtidos normalmente, então:
- retire o corpo (embora não tenha certeza de como -
response.content = ''
não parece fazer isso. - Parece que o App Engine Strips o corpo, dando um aviso "queda do corpo inesperado em resposta à solicitação da cabeça"
- retire o corpo (embora não tenha certeza de como -
Parece que isso é limpo e pode ser escrito bem usando decoradores ou middleware.
- Lidar com cada solicitação de cabeça especialmente:
- Isso significa que eu poderia evitar um acesso a armazenamento de dados em alguns casos (muitos?).
- Aparentemente, existe um risco que o middleware que define o cabeçalho do comprimento do conteúdo será impedido de fazê-lo por essa abordagem.
Algo mais? O que devo fazer? O uso do mecanismo de aplicativo faz a diferença aqui? Existem detalhes sutis; Em caso afirmativo, existe um middleware apropriado para usar? Para converter para obter, é `request.method =" obtenha "o suficiente (parece funcionar)?
Solução
Você pretendia que o aplicativo lide com solicitações de cabeça ou sejam provenientes de alguma fonte anônima? Você certamente não é obrigado a honrar um pedido de cabeça. Você pode apenas retornar com um código de status de 405 (método não permitido) e fornecer o cabeçalho ALIMENTO com GET ou o que quer que você pretenda manipular.
Eu não acho que isso estabeleça o pedido de solicitação manual. Com toda a probabilidade, você está apenas retornando uma resposta maior que o que o solicitante queria. Eles só queriam ver os cabeçalhos para a resposta. Se você não quiser lidar com a cabeça, faça o 405 e permita a abordagem do cabeçalho.
Geralmente, um cliente envia uma solicitação de cabeça porque está tentando ser inteligente por não lidar com uma resposta completa, se não precisar. Eles estão verificando se o comprimento do conteúdo mudou desde a última vez em que viu a resposta, ou desejam ver o último modificado ou expirar o cabeçalho.
Certamente é bem-comportado para que seu aplicativo lide graciosamente nas solicitações da cabeça, mas você não precisa.