0. Introdução, por que precisamos de cookies e sessões
Como as solicitações HTTP estão sem estado (o status de login do usuário não pode ser gravado, etc.), é necessário um determinado mecanismo para salvar o status de login do usuário e outras informações. Na próxima vez que você acessar o serviço da Web, você não precisará verificar se deve fazer login ou outro status novamente. O mecanismo de sessão e o mecanismo de cookie são soluções no servidor e no lado do navegador, respectivamente.
1. Sobre cookies
1.1 O que é um biscoito
Cookie, biscoitos de significado original. É usado para armazenar informações de status do usuário no lado do navegador e, em seguida, traga essa parte das informações de volta ao back -end ao acessar o back -end.
O conteúdo dos cookies inclui principalmente: nome, valor, tempo de validade, caminho e domínio
1.2 categoria de cookies
Cookies de sessão Cookies que não definem o tempo de expiração são salvos na memória do navegador. Se o navegador estiver fechado, os biscoitos serão destruídos. (frequentemente usado como sessão)
Os cookies normais definem o tempo de expiração e salvam -o no disco rígido
1.3 Como se aplicar
Ao iniciar uma solicitação: o navegador verifica todos os cookies armazenados. Se o escopo da ação declarado por um cookie (determinado pelo caminho e pelo domínio) for maior ou igual à localização do recurso a ser solicitado, o cookie será anexado ao cabeçalho da solicitação HTTP do recurso de solicitação e enviado ao servidor.
Ao processar solicitações: no lado do servidor, as informações de cookies contidas no cabeçalho da solicitação geralmente são verificadas (como a verificação de login). Se a verificação for passada, o processamento de negócios real poderá ser realizado.
Se a verificação falhar, como não encontrar o cookie ou a informação do cookie estiver incorreta (talvez forjada), pule para fazer login e depois de fazer login, retorne as informações do cookie na resposta. O navegador o salvará no disco rígido ou na memória com base nas informações de cookies retornadas para o próximo uso. , Assim,
2. Sobre a sessão
2.1 O que é sessão
A sessão é usada para salvar informações de status do usuário no lado do servidor.
2.2 Como usar
Quando o navegador inicia uma solicitação: o servidor lê primeiro as informações da sessão no cabeçalho da solicitação. Se as informações da sessão não forem encontradas ou o SessionID não puder ser recuperado localmente, se não for, um novo SessionID será gerado e armazenado no disco rígido do servidor ou no memcache.
O navegador recebe uma resposta: o SessionID devolvido será salvo na memória local para uso na próxima solicitação. Uma das implementações da sessão salva localmente é economizar informações sobre cookies, mas, de fato, os cookies não são a única solução para salvar sessões. Também é possível usar reescritas de URL (anexar o ID da sessão diretamente atrás do caminho da URL).
3. As principais diferenças entre cookies e sessões
1. Há uma pequena diferença no local de armazenamento
Os dados do cookie são armazenados no navegador do cliente e não precisam ser salvos no lado do servidor. Os dados da sessão são colocados no servidor e também há uma cópia da memória local.
2. Segurança diferente
Os cookies não são tão seguros quanto a sessão. Como os cookies comuns são salvos no disco rígido local, os hackers podem iniciar ataques XS forjando URLs e outros meios para obter cookies no estado de disco rígido local e, em seguida, roubar as informações sensíveis dos usuários.
Sessão é diferente. Somente quando um ataque XSS é lançado quando um usuário faz login neste site, as informações da sessão podem ser obtidas. Depois de fechar o navegador, a sessão será destruída. A segurança é melhor que os cookies.
3. Diferenças no suporte de domínio cruzado
Os cookies suportam acesso ao domínio cruzado. Por exemplo, se o atributo de domínio estiver definido como ".biaodianfu.com", todos os nomes de domínio com o sufixo ".biaodianfu.com" poderão acessar o cookie. Os cookies de domínio cruzado agora são amplamente utilizados na Internet, como Google, Baidu, Sina, etc. A sessão não suporta acesso ao domínio cruzado. A sessão é válida apenas dentro do nome de domínio em que ele está.
4. A diferença na pressão do servidor
A sessão é armazenada no lado do servidor e cada usuário gerará uma sessão. Se houver muitos usuários que acessam simultaneamente, ele gerará muitas sessões e consumirá muita memória. Portanto, é improvável que sites como Google, Baidu e Sina com visitas simultâneas extremamente altas possam ser rastreadas usando a sessão. Considerando a redução do desempenho do servidor, o cookie deve ser usado.
5. Métodos de acesso diferentes
As cordas ASCII só podem ser armazenadas em biscoitos. Se forem necessários caracteres unicode ou dados binários, a codificação será necessária primeiro. Os objetos Java não podem ser acessados diretamente em cookies. Para armazenar informações um pouco complexas, o uso de cookies é bastante difícil.
A sessão pode acessar qualquer tipo de dados, incluindo, entre outros, string, número inteiro, lista, mapa etc. na sessão, feijão java e até qualquer aula de java, objetos etc. podem ser armazenados diretamente, o que é muito fácil de usar. Você pode pensar na sessão como uma classe de contêiner Java.
6. O tamanho dos cookies é limitado
Os dados salvos por um único cookie não podem exceder o 4K e muitos navegadores restringem um site para economizar até 20 cookies.
O simples entendimento simples de sessão e cookies é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.