7.1 Cabeçalho Keep-Alive
E mais alguns títulos úteis. O cabeçalho Keep-Alive informa ao servidor para manter a conexão aberta: o servidor não fechará a conexão imediatamente após enviar a resposta. Isso fará com que a próxima solicitação do mesmo cliente para o servidor seja concluída mais rapidamente.
Um exemplo desse cabeçalho:
Connection: Keep-Alive
Mas se todos os clientes exigirem uma conexão permanente, os problemas começarão no servidor. O servidor ficará indisponível ou começará a fechar as conexões por conta própria.
7.2 Cabeçalho de controle de cache
O cabeçalho Cache-Control pode ser usado para controlar o cache de conteúdo. O cache configurado corretamente acelera o trabalho com o conteúdo, o cache configurado incorretamente cria problemas do nada.
Para desabilitar o cache, você precisa escrever o seguinte cabeçalho:
Cache-Control: no-cache, no-store, must-revalidate
Nada deve ser armazenado no cache - nem das solicitações do cliente nem das respostas do servidor. A solicitação é sempre enviada ao servidor, a resposta é sempre baixada completamente.
Você também pode ativar o tipo de cache mais primitivo e confiável :
Cache-Control: no-cache
Antes de distribuir uma cópia, o cache consulta o servidor de origem para verificar se o recurso está atualizado.
Você pode especificar o tempo de cache do recurso em segundos . O cabeçalho ficará assim:
Cache-Control: max-age=31536000
Este cabeçalho especifica o tempo máximo de cache para o conteúdo.
Você pode ler mais sobre cache aqui.
7.3 Cookies
O servidor pode armazenar dados no lado do cliente . Esses dados são chamados de cookie . No entanto, o cliente também pode armazenar o cookie. Eles são muito úteis para ambas as partes.
Por exemplo, você acessa o site e já está autorizado nele. Ou seja, quando você se conectou pela última vez, o servidor ordenou ao navegador que armazenasse informações sobre o login bem-sucedido de um determinado usuário.
Aqui está a aparência do Cookie em uma solicitação:
Cookie: name=value;name2=value2;nameN=valueN00
Os cookies geralmente são armazenados pelo navegador e estão vinculados a um domínio específico . Quando você visita o mesmo domínio novamente, os cookies são adicionados automaticamente à solicitação http e à resposta http. O servidor/domínio não pode receber cookies que são armazenados no navegador por outro servidor/domínio.
Cada cookie tem 4 parâmetros principais:
- Nome;
- significado;
- período de validade (quanto tempo para armazená-los);
- o domínio ao qual o cookie está vinculado.
Os cookies são armazenados e transmitidos em forma de texto, portanto, tanto o nome quanto o valor são strings. Se o tempo de expiração do cookie não for especificado, eles serão destruídos após o fechamento do navegador.
7.4 sessão
Depois que o usuário faz login no site, ele diz que uma sessão foi estabelecida entre o site e o servidor.
O servidor cria em si um objeto especial - HttpSession,
onde armazena todas as informações necessárias para trabalhar com um cliente autorizado. E o número exclusivo desse objeto é armazenado no navegador na forma de um Cookie.
Os servidores da Web Java geralmente usam um nome JSESSIONID
para armazenar o ID da sessão. Parece algo assim:
Cookie: JSESSIONID =ABAD1D
No lado do servidor, você pode definir o tempo de vida da sessão, bem como se ela será fechada automaticamente quando o navegador for fechado.
GO TO FULL VERSION