O protocolo HTTP é sem estado. As sessões são uma maneira de preservar o estado do cliente nas solicitações HTTP. Você pode optar por fazer isso com o tratamento de sessão interno de uma plataforma ou fazer você mesmo com os parâmetros da cadeia de caracteres de consulta. De qualquer maneira, é necessário algum conceito de sessão para muitas tarefas.
Seu colega provavelmente não gosta de uma implementação específica ou não está usando sessões para os fins pretendidos. Se você precisar reter informações sobre uma conexão específica do cliente através de solicitações HTTP, precisará de alguma forma de persistência da sessão.
Os seguintes problemas são específicos da implementação:
Natureza não digitada das variáveis da sessão
Natureza do escopo global das variáveis de sessão
Servidores de balanceamento de carga que perdem sessões
Pools / servidores de aplicativos reiniciando
Por exemplo, na maioria das vezes eu trabalho em PHP e armazeno minhas informações de sessão em um banco de dados relacional. Então, minhas variáveis de sessão são digitadas. O balanceamento de carga e as reinicializações do servidor não causam problemas na sessão.
Este é mais interessante:
Tempos limite da sessão causando perda de estado
As sessões são mais frequentemente preservadas por meio de cookies. Estes podem ser excluídos pelo cliente a qualquer momento. Mas eles também podem ser preservados por meio de um parâmetro de sequência de consultas e, portanto, nunca atingem o tempo limite no cliente. O tempo limite do servidor depende de você. Portanto, mesmo esse problema é específico da implementação.
Não vamos jogar fora todo o conceito de sessões apenas porque não gostamos de uma implementação específica. Qualquer boa estrutura de aplicativo da Web facilitará o uso de sessões adequadamente para preservar logins do usuário ou reter qualquer outra coisa específica da visita atual do usuário. O registro do banco de dados de um usuário pode (e deve) ser usado para armazenar itens específicos a ele quando conectado. Os visitantes anônimos, no entanto, também podem ter informações temporárias que devem ser preservadas em sua sessão, como uma pequena lista de páginas recentes visitadas ou a preferência por esconda um aviso que eles já viram. Geralmente, apenas informações temporárias menores são apropriadas para o armazenamento da sessão.
using things like query string parameters instead
- Neste caso, sempre use sempre os parâmetros da string de consulta, se possível. O uso da sessão para esse tipo de parâmetro é frágil e pode apresentar erros estranhos quando os usuários têm várias guias abertas.