O que é um servidor sem estado?


Melhor resposta

Sem estado significa que não tem estado.

Vamos pegar um servidor web, por exemplo. Pode ser com ou sem estado.

Com estado significaria que o servidor armazena algumas informações da sessão para identificar um usuário em várias solicitações subsequentes. Se a sessão for válida, as solicitações serão bem-sucedidas.

Sem estado seria o oposto. O servidor não armazenaria nenhum estado, ou seja, informações da sessão para identificar o usuário em várias solicitações subsequentes. Cada solicitação deve incluir alguma forma de identificar o usuário. Uma maneira de conseguir isso é usar um token (por exemplo, token da Web JSON ou oAuth). Este token seria enviado com cada solicitação (geralmente nos cabeçalhos de solicitação).

Isso elimina a necessidade de os servidores manterem os dados da sessão, o que afeta a escalabilidade, pois a movimentação para vários servidores exige o compartilhamento dos dados da sessão.

Resposta

Já ouviu falar de algo chamado sessões no contexto da Web?

Vou explicar não generalizando o conceito, mas me limitando a um encontro mais comum que quase todos nós já tivemos na Internet ou WWW.

Os servidores stateful mantêm as informações de estado do usuário na forma de sessões. Isso é diferente de “fazer login em sua conta” em um site. Hoje em dia, a maioria dos sites HTTP acessíveis via WWW mantém as informações da sessão do usuário. Portanto, durante a execução de uma sessão, todas as suas solicitações pertencem a essa sessão específica que foi aberta quando você visitou pela primeira vez uma página nesse site. Geralmente, uma sessão é encerrada apenas quando você fecha o navegador. Manter as informações da sessão ajuda o servidor web a oferecer um serviço personalizado. Além disso, as sessões também ajudam a monitorar o tráfego concorrente da web em qualquer ponto do tempo, oferecem recursos de segurança, como banir um usuário malicioso que está tentando derrubar o servidor, enviando várias solicitações ao servidor (provavelmente usando a mesma sessão estabelecida). Por fim, as sessões são usadas para “fazer login” no site. Depois de fazer login no site, seu identificador exclusivo é salvo pelo serviço da web na sessão que você abriu e, para todas as suas solicitações posteriores, o servidor da web sabe que é você quem está acessando o serviço.

Sem estado os servidores, por outro lado, não mantêm nenhuma informação de estado para o usuário. Cada solicitação é totalmente independente da solicitação anterior. A arquitetura stateless mais comum que usa HTTP é REST (REpresentational State Transfer), que é usada para projetar APIs da web. Os servidores sem estado ainda podem ser capazes de identificar o usuário se a solicitação para o serviço incluir um ID de usuário exclusivo que foi alocado anteriormente ao usuário. Mas esse ID de usuário precisará ser passado em todas as solicitações, ao contrário do caso de servidores com estado que mantêm esse ID de usuário na sessão e os dados da solicitação não precisam necessariamente conter esse ID. tentamos sublinhar as principais diferenças entre os servidores com e sem estado. As diferenças podem ser estendidas a cenários mais generalizados.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *