Pediram-me para construir um site e um dos co-desenvolvedores me disse que eu precisaria incluir o cabeçalho keep-alive.
Bem, eu li muito sobre isso e ainda tenho dúvidas.
A conexão aberta melhora o desempenho quando um cliente faz várias solicitações de conteúdo da página da Web, porque o servidor pode retornar o conteúdo de cada solicitação mais rapidamente. Caso contrário, o servidor deve abrir uma nova conexão para cada solicitação
Olhando para
- Quando o IIS (F) envia
keep alive
cabeçalho ( ou usuário envia keep-alive ), isso significa que (E
,C
,B
) salvar uma conexão que é apenas para a minha sessão? - Onde essa informação é mantida ( "esta conexão pertence a" Royi " )?
- Isso significa que ninguém mais pode usar essa conexão
- Em caso afirmativo - isso significa que o cabeçalho keep alive - reduz o número de usuários de conexão sobreposta?
- em caso afirmativo, por quanto tempo a conexão é salva para mim? (em outras palavras, se eu definir keep alive- "manter" até quando?)
ps para quem estiver interessado:
clicar nesta página de amostra retornará o cabeçalho keep alive
http
http-headers
keep-alive
Royi Namir
fonte
fonte
Respostas:
Uma conexão TCP é reconhecida pelo IP e porta de origem e IP e porta de destino. Seu sistema operacional, todos os dispositivos com reconhecimento de sessão intermediária e o sistema operacional do servidor reconhecerão a conexão por meio disso.
O HTTP trabalha com solicitação-resposta: o cliente se conecta ao servidor, realiza uma solicitação e obtém uma resposta. Sem o keep-alive, a conexão com um servidor HTTP é fechada após cada resposta. Com HTTP keep-alive, você mantém a conexão TCP subjacente aberta até que certos critérios sejam atendidos.
Isso permite vários pares de solicitação-resposta em uma única conexão TCP, eliminando parte da inicialização relativamente lenta da conexão do TCP.
Não. Os roteadores não precisam se lembrar das sessões. Na verdade, vários pacotes TCP pertencentes à mesma sessão TCP não precisam passar pelos mesmos roteadores - ou seja, para o TCP gerenciar. Os roteadores apenas escolhem o melhor caminho IP e encaminham os pacotes. Keep-alive é apenas para cliente, servidor e quaisquer outros dispositivos intermediários com reconhecimento de sessão.
Essa é a intenção das conexões TCP : é uma conexão ponta a ponta destinada apenas a essas duas partes.
Defina "conexões sobrepostas". Consulte a conexão persistente HTTP para algumas vantagens e desvantagens, como:
Uma resposta típica de keep-alive tem esta aparência:
Consulte Cabeçalho Keep-Alive do Protocolo de Transferência de Hipertexto (HTTP), por exemplo (um rascunho para HTTP / 2 em que o cabeçalho keep-alive é explicado com mais detalhes do que 2616 e 2086 ):
Um host define o valor do
timeout
parâmetro para o tempo que o host permitirá que uma conexão inativa permaneça aberta antes de ser fechada. Uma conexão fica inativa se nenhum dado for enviado ou recebido por um host.O
max
parâmetro indica o número máximo de solicitações que um cliente fará ou que um servidor permitirá que sejam feitas na conexão persistente. Depois que o número especificado de solicitações e respostas for enviado, o host que inclui o parâmetro pode fechar a conexão.No entanto, o servidor está livre para fechar a conexão após um tempo ou número arbitrário de solicitações (desde que retorne a resposta à solicitação atual). A forma como isso é implementado depende do seu servidor HTTP.
fonte
N
solicitações sobreN
conexões (como por padrão, a conexão é fechada após cada resposta), por exemplo, dispararN
solicitações sobreN / M
ou mesmo apenasM
conexões, porque pode disparar várias solicitações sobre cada conexão aberta, então pode usar menos.