A solicitação do Chrome diz "Cabeçalhos provisórios são mostrados":
Na primeira vez que o navegador envia essa solicitação, a solicitação é bloqueada e nenhuma resposta é recebida. Quando o navegador for solicitado a enviar essa solicitação novamente, ele reportará esse aviso caso a solicitação anterior não tenha sido respondida, então onde estará o problema?
Encontrei isso várias vezes no projeto, e vou apresentar diferentes cenários respectivamente:
1. Cabeçalhos provisórios aparecem ao acessar o navegador de todos os clientes:
Como lidar com isso: Verifique a página onde o pedido foi acionado para ver se o envio do formulário e o pedido do ajax são acionados ao mesmo tempo.
Por exemplo, defina um botão, tipa é submit, e defina um evento ajax para o botão;
Esse cenário é um dos que surgiram em nosso processo de desenvolvimento anterior
2. Alguns navegadores clientes aparecem
Como lidar com isso: Ligue para o chrome://net-internals/#events do Chrome, depois reative a solicitação e então verifique o log de solicitações onde os cabeçalhos provisórios aparecem;
Veja se delegate_blocked_by palavras-chave existem; Isso geralmente ocorre devido ao plug-in do navegador ou ao software do cliente interceptando a solicitação; A situação que temos é interceptada pelo WebSense Endpoint;
Se for esse o caso, pode basicamente ser ignorado, o problema do próprio cliente; Você pode considerar desinstalar o plugin ou software e tentar novamente para ver se ele ainda aparece; Se ainda ocorrer, por favor, verifique se se enquadra nas seguintes condições
3. Todos os clientes tiveram esse erro de forma aleatória e ocasional, e se for esse o caso, geralmente é um problema do lado do servidor
Método de manejo: Solucionar problemas com base na arquitetura de implantação. Por exemplo, alguns processos-chave em nossa arquitetura de implantação são nginx----> aplicação gateway----> balanceador de carga F5----> servidor de aplicações (docker)
Você pode solucionar problemas camada por camada, a maneira simples é escrever diretamente uma solicitação de curl for loop com o comando do shell do servidor e primeiro chamar o servidor de aplicação mais baixo (se você tem medo de que a pressão não seja suficiente, pode pressioná-lo com múltiplas threads); Pressiona para cima em troca; No processo de teste de estresse, você pode ver em tempo real se a solicitação ficará travada; Se encontrado, é muito provável que esse seja o problema:
Atualmente, encontramos duas situações: uma é no nível F5, algumas solicitações são balanceadas de carga sem sucesso para o servidor de aplicações; Também existe uma situação em que ela fica travada no nível nginx;
Solução: A estratégia de balanceamento de carga no nível F5 foi alterada de desempenho L4 para padrão.
Plano de gerenciamento de situação travada no nível nginx: Na verdade, não participei dessa situação, e entendo que modificar muitas configurações do nginx não tem efeito, e no fim das contas simplesmente mata e reinstala, então não encontrei o ponto chave
Minha própria solução, como o Fiddler 4 que uso normalmente não está fechado, então reabri o Fiddler 4, tentei solicitar o site e ele voltou ao normal, nesse momento, fechei o Fiddler 4 novamente.
|