Na interação homem-computador, o gerenciamento de sessão é o processo de acompanhar a atividade de um usuário através de sessões de interação com o sistema de computador.
Tipo tarefas de gerenciamento de sessão em um ambiente desktop incluem acompanhar quais aplicativos estão abertos e quais documentos cada aplicativo abriu, para que o mesmo estado possa ser restaurado quando o usuário sair e entrar mais tarde. Para um website, o gerenciamento da sessão pode envolver exigir que o usuário faça o login novamente se a sessão tiver expirado (ou seja, um certo limite de tempo passou sem atividade do usuário). Ele também é usado para armazenar informações no lado do servidor entre solicitações HTTP.
Desktop session managementEdit
A desktop session manager é um programa que pode salvar e restaurar sessões desktop. Uma sessão desktop são todas as janelas atualmente em execução e seu conteúdo atual. O gerenciamento de sessão em sistemas baseados em Linux é fornecido pelo gerenciador de sessão X. Em sistemas Microsoft Windows, o gerenciamento de sessão é fornecido pelo subsistema Session Manager (smss.exe); a funcionalidade de sessão do usuário pode ser estendida por aplicativos de terceiros como o twinsplay.
Gerenciamento de sessão é particularmente útil em um navegador web onde um usuário pode salvar todas as páginas e configurações abertas e restaurá-las em uma data posterior ou em um computador diferente (veja portabilidade dos dados).
Para ajudar a recuperar de uma falha no sistema ou aplicativo, as páginas e configurações também podem ser restauradas na próxima execução. Google Chrome, Mozilla Firefox, Internet Explorer, OmniWeb e Opera são exemplos de navegadores web que suportam o gerenciamento de sessões. A gestão da sessão é frequentemente gerida através da aplicação de cookies.
Gestão da sessão do servidor webEdit
Hypertext Transfer Protocol (HTTP) é stateless: um computador cliente que executa um navegador web deve estabelecer uma nova conexão de rede Transmission Control Protocol (TCP) ao servidor web com cada nova solicitação HTTP GET ou POST. O servidor web, portanto, não pode confiar em uma conexão de rede TCP estabelecida por mais tempo que uma única operação HTTP GET ou POST. O gerenciamento da sessão é a técnica usada pelo desenvolvedor web para fazer o protocolo HTTP sem estado suportar o estado da sessão. Por exemplo, uma vez que um usuário tenha sido autenticado no servidor web, a próxima requisição HTTP do usuário (GET ou POST) não deve fazer com que o servidor web peça novamente a conta e a senha do usuário. Para uma discussão dos métodos usados para realizar isso, veja cookie HTTP e ID da sessão
Em situações onde vários servidores web devem compartilhar conhecimento do estado da sessão (como é típico em um ambiente de cluster) as informações da sessão devem ser compartilhadas entre os nós de cluster que estão executando o software do servidor web. Os métodos para compartilhar o estado da sessão entre nós em um cluster incluem: informações de sessão multicast para nós membros (consulte JGroups para um exemplo desta técnica), compartilhar informações de sessão com um nó parceiro usando memória compartilhada distribuída ou virtualização de memória, compartilhar informações de sessão entre nós usando soquetes de rede, armazenar informações de sessão em um sistema de arquivo compartilhado, como um sistema de arquivo distribuído ou um sistema de arquivo global, ou armazenar as informações de sessão fora do cluster em um banco de dados.
Se a informação da sessão for considerada transitória, dados voláteis que não são necessários para a não repúdio de transações e não contêm dados sujeitos a auditoria de conformidade (nos EUA, por exemplo, veja a Health Insurance Portability and Accountability Act e a Sarbanes-Oxley Act para exemplos de duas leis que requerem auditoria de conformidade), então qualquer método de armazenamento de informação da sessão pode ser usado. Entretanto, se a informação da sessão estiver sujeita à conformidade de auditoria, deve-se considerar o método usado para armazenamento de sessão, replicação e clustering.
Em uma arquitetura orientada a serviços, o Simple Object Access Protocol ou mensagens SOAP construídas com mensagens XML (Extensible Markup Language) podem ser usadas por aplicativos de consumo para fazer com que servidores web criem sessões.
Gestão de sessão sobre SMSEdit
Just as HTTP são um protocolo sem estado, assim como o SMS. Como o SMS se tornou interoperável através de redes rivais em 1999, e o envio de mensagens de texto começou sua ascensão para se tornar uma forma de comunicação global onipresente, várias empresas se interessaram em usar o canal SMS para fins comerciais. Os serviços iniciais não exigiam gestão de sessões, uma vez que eram apenas comunicações unidireccionais (por exemplo, em 2000, o primeiro serviço de notícias móveis foi entregue via SMS na Finlândia). Hoje em dia, estas aplicações são referidas como mensagens “aplicação-a-para-para-peer” (A2P), em oposição às mensagens “peer-to-peer” (P2P). O desenvolvimento de aplicativos corporativos interativos exigia gerenciamento de sessão, mas como o SMS é um protocolo sem estado, conforme definido pelos padrões GSM, as primeiras implementações eram controladas pelo lado do cliente, fazendo com que os usuários finais inserissem comandos e identificadores de serviço manualmente.