Pergunta

Estou curioso para saber quais são os impactos de desempenho do uso da autenticação básica HTTP em um servidor da web como Apache ou LightTPD ou Nginx. Eu imagino que o gargalo é a leitura real do arquivo pelo servidor para autenticar um usuário. Também me parece que o custo de ler o arquivo para autenticar um usuário é proporcional ao número de usuários nesse arquivo.

Perguntas que tenho são:
1. Existe um número específico de usuários em que a autenticação básica via arquivo começa a cair drasticamente ou é linearmente em relação ao número de usuários no arquivo?
2. Dada a natureza apátrida do HTTP, se um usuário foi autenticado usando o HTTP Basic Auth pelo servidor da web em uma solicitação:
- Ele simplesmente encaminha as credenciais em todas as solicitações e o servidor da web deve analisar o arquivo de senha sempre para determinar se essa é uma solicitação de um usuário válido?
ou
- Obtenha algo como um token que ele usa no cabeçalho HTTP nas solicitações subsequentes, permitindo que o servidor evite a análise do arquivo de senha novamente?

desde já, obrigado

Foi útil?

Solução

  1. Linearmente relativo. Eu não me preocuparia. O HTTP Basic Auth é provado ser escalável. Basta pegar a API do Twitter como exemplo. Ele usa Auth Basic.

  2. "Como o protocolo HTTP está sem estado, cada solicitação será tratada da mesma maneira, mesmo que sejam do mesmo cliente. Ou seja, todos os recursos solicitados do servidor terão que fornecer credenciais de autenticação novamente para receber novamente para receber O recurso. Felizmente, o navegador cuida dos detalhes aqui, para que você só precise digitar seu nome de usuário e senha uma vez por sessão do navegador - ou seja, você pode precisar digitá -lo novamente na próxima vez que abrir seu seu navegador e visite o mesmo site. "

Informações detalhadas no Documentação de autenticação do Apache.

Outras dicas

Minha experiência é apenas com o Apache 2.x.

  1. Sim. Será linear com o provedor de autenticação padrão (arquivo). Ele usa ap_cfg_getline() Portanto, será linear para o número de linhas (usuários).
  2. Sim. mod_aaa deve analisar a senha todas as vezes. Você pode usar algo como Memcookie para autenticação baseada em cookie ou token.

Analisar um arquivo uma vez no logon deve escalar muito bem, não importa quantos usuários existam. Eu realmente não me preocuparia com isso. No futuro, você pode desenvolver uma abordagem orientada ao banco de dados com indexação adequada. Suspeito de todos os gargalos que você estará enfrentando para desenvolver um site, o Basic Auth não será um deles por muito tempo - a menos que seu servidor da web esteja muito pouco poderoso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top