Sessões PHP e o HTTP Stateless
Gabarito: letra A. O HTTP é um protocolo sem estado (stateless), ou seja, cada requisição é independente. Para manter o estado de uma sessão entre requisições do mesmo usuário, o PHP utiliza, por padrão, um cookie chamado PHPSESSID que armazena um identificador único no cliente. Esse identificador é enviado automaticamente em cada requisição, permitindo que o servidor recupere os dados da sessão (normalmente armazenados em arquivos) associados àquele ID.
Alternativa A — ✅ Correta
A descrição está correta: o cookie PHPSESSID contém um identificador de sessão único; no servidor, o PHP associa esse ID a um arquivo (por padrão) ou outro mecanismo de armazenamento (banco de dados, memória) onde ficam os dados da sessão. Esse é o mecanismo padrão de sessão do PHP.
Alternativa B — ❌ Incorreta
O endereço IP do cliente não é confiável para identificar sessões, pois pode mudar (ex.: NAT, proxies, redes móveis) e é compartilhado por vários usuários em um mesmo proxy. O PHP não utiliza IP como identificador de sessão.
Alternativa C — ❌ Incorreta
O PHP não armazena automaticamente os dados da sessão no MySQL. O armazenamento padrão é em arquivos no servidor. É possível configurar para usar banco de dados (ex.: via session_set_save_handler()), mas não é automático nem obrigatório.
Alternativa D — ❌ Incorreta
Não há um mecanismo padrão do PHP que reenvie variáveis de ambiente via POST oculto para manter sessão. As variáveis de ambiente não são utilizadas para esse fim; o mecanismo correto é o cookie ou, alternativamente, a passagem do ID de sessão pela URL (quando cookies estão desabilitados).
Alternativa E — ❌ Incorreta
O PHP consegue sim manter estado de sessão, como descrito na alternativa A. JavaScript não é necessário; o gerenciamento de sessão é feito inteiramente no servidor com o auxílio de cookies (ou passagem de ID via URL).
Gabarito: letra A