Erro de buffer do cabeçalho da mensagem HTTP

Não é possível acessar algumas páginas no Adobe Experience Manager

Não é possível acessar algumas páginas e o seguinte erro aparece nos registros:

servletengine Solicitação inválida. com.day.j2ee.servletengine.BadRequestException: a linha de solicitação excede 8192 bytes

Soluções

Se o cabeçalho de mensagens HTTP para um servidor AEM for rotineiramente muito grande, algumas coisas poderão ser feitas para resolver o problema.

Você poderá aumentar o tamanho do buffer de cabeçalho no AEM/CQ.

Para aumentar o tamanho do buffer de cabeçalho no CQ 5.5, obtenha o pacote de recursos NPR-2324 da Adobe. Esse pacote de recursos adiciona um campo de tamanho de buffer de cabeçalho à configuração OSGi do Serviço Day HTTP CQSE. O campo a ser mudado é Tamanho da Solicitação de Buffer (org.apache.felix.http.cqse.requestBufferSize).

O pacote de recursos não é necessário no AEM 5.6. A mesma configuração adicionada pelo pacote de recursos para CQ 5.5 já está disponível.

O servidor foi alterado para AEM 6+. A configuração a ser alterada está dentro da configuração do Serviço HTTP Baseado no Apache Felix Jetty. Os campos a serem alterados são: Tamanho do Buffer de Solicitação e Tamanho do Buffer de Resposta (org.apache.felix.http.jetty.requestBufferSize e org.apache.felix.http.jetty.responseBufferSize).

Se a instância do AEM estiver em execução em um servidor de aplicativos JEE, ela não utilizará o servidor da Web integrado. Altere o tamanho do cabeçalho do buffer nas configurações do servidor de aplicativos.

Embora a especificação HTTP não coloque um limite máximo nos cabeçalhos das mensagens, se mais de 24k for necessário para o tamanho do buffer do cabeçalho HTTP, outra solução será necessária. Quanto maior o tamanho do buffer de cabeçalho, mais memória cada soquete HTTP aberto receberá. Isso inclui soquetes que estão aguardando uma conexão. Cada soquete requer que a memória dos cabeçalhos das mensagens de solicitação e dos cabeçalhos das mensagens de resposta sejam alocada a eles o tempo todo. O aumento drástico no tamanho do cabeçalho da mensagem terá um efeito direto sobre a quantidade mínima de memória heap que o AEM deverá ter para ser executado.

Se o URL para solicitações for muito grande devido ao tamanho dos argumentos de URL, altere as solicitações para usar o método POST em vez de GET. Os parâmetros para solicitações GET são adicionados ao tamanho do cabeçalho da mensagem. Os parâmetros para solicitações POST, no entanto, são adicionados ao conteúdo da mensagem.

Se o tamanho dos cookies estiver fazendo com que o cabeçalho da mensagem seja muito grande, considere eliminar as informações armazenadas nos cookies ou armazenar os dados de outra maneira. Os objetos de armazenamento da Web do navegador não causam aumento nos cabeçalhos das mensagens. O contexto do cliente dentro do AEM pode, com o tempo, exigir uma grande quantidade de dados salvos. Por padrão, versões posteriores do AEM usam objetos de armazenamento da Web para dados de contexto do cliente. Versões mais antigas executam os dados do Contexto do Cliente usando cookies. Consulte Contexto do Cliente em Detalhes para obter informações sobre como alterar a maneira como os dados são armazenados.

Informações adicionais

AEM/CQ tem um buffer para o conteúdo do cabeçalho de solicitação HTTP. O conteúdo dos cabeçalhos de solicitação e resposta HTTP deverá caber dentro do buffer. Dentro do CQ 5.5 e do AEM 5.6, o tamanho padrão deste buffer é de 8k. O tamanho padrão do buffer de cabeçalho é maior no AEM 6.

Todas as mensagens HTTP têm duas partes, o cabeçalho da mensagem e o corpo da mensagem.

O corpo da mensagem contém todas as informações que consideramos o conteúdo da mensagem. Exemplos de corpo da mensagem seriam o texto HTML de uma página da Web ou o binário de uma imagem. Para mensagens HTTP que usam solicitações POST, o corpo da mensagem poderá conter os parâmetros da solicitação de postagem.

O cabeçalho contém informações sobre a solicitação ou resposta. Isso inclui o método HTTP usado e o URL solicitado. Para mensagens de resposta HTTP, o status HTTP da resposta também é incluído. Outras informações sobre a mensagem HTTP podem ser incluídas na forma de pares de chave / valor que são chamados de campos de cabeçalho. Os cookies do navegador são enviados e recebidos como pares de chave / valor nos cabeçalhos das mensagens.

Um cabeçalho de mensagem deverá ser avaliado no recebimento e é processado como um todo antes que o servidor ou o navegador atuem no conteúdo da mensagem. O AEM lê o cabeçalho da mensagem HTTP em um buffer que deverá ser grande o suficiente para conter o cabeçalho inteiro. Se o conteúdo do cabeçalho de uma mensagem HTTP for muito grande para caber no buffer, a mensagem falhará.

Existem algumas condições que podem fazer com que o cabeçalho da mensagem HTTP seja grande demais para caber no buffer do servidor. Qualquer uma dessas condições pode, por si só ou com outras condições, fazer com que o HTTP seja muito grande.

O URL em uma solicitação pode ser muito longo para o buffer. Isso pode acontecer, por exemplo, quando uma solicitação tem centenas de argumentos de URL. Ou pode acontecer quando argumentos de URL individuais são enormes.

As informações salvas nos cookies podem crescer até o ponto em que o cabeçalho não cabe mais no buffer de cabeçalho do servidor. Esse problema pode ser causado por muitos cookies menores ou cookies extremamente grandes.

É possível que os desenvolvedores criem campos de cabeçalho personalizados. Frequentemente, as implementações de logon único usam campos de cabeçalho personalizados. Como o tamanho dos valores nos campos de cabeçalho não é limitado na especificação HTTP, os desenvolvedores podem criar campos de cabeçalho com uma grande quantidade de conteúdo.

Consulte também

Especificação da mensagem HTTP 
Especificação de armazenamento da Web HTTP

 Adobe

Receba ajuda com mais rapidez e facilidade

Novo usuário?