Domanda

Sono curioso di sapere quali sono gli impatti delle prestazioni di utilizzo HTTP Auth di base su un server web come Apache o lighttpd o nginx. Immagino che il collo di bottiglia è la lettura effettiva del file dal server per autenticare un utente. Sembra anche a me che il costo della lettura del file per autenticare un utente è proporzionale al numero di utenti in quel file.

Domande che ho sono:
1. C'è un numero specifico di utenti a cui autenticazione di base tramite file inizia a cadere drasticamente o è lineare rispetto al numero di utenti nel file?
2. Data la natura stateless di HTTP, se un utente è stato autenticato tramite HTTP Auth di base da parte del server web su una sola richiesta:
- non semplicemente trasmettere le credenziali a ogni richiesta e il server web deve analizzare il file di password ogni volta al fine di determinare se si tratta di una richiesta da un utente valido
? o
- ottenere qualcosa come un token che utilizza nell'intestazione HTTP durante le richieste successive, consentendo al server per evitare il parsing di nuovo il file delle password?

grazie in anticipo

È stato utile?

Soluzione

  1. linearmente relativa. Io non mi preoccuperei. HTTP Auth di base è dimostrato di essere scalabile. Basta prendere le API di Twitter come esempio. Esso utilizza Auth di base.

  2.   

    "Poiché il protocollo HTTP è stateless, ogni richiesta sarà trattata allo stesso modo, anche se sono dello stesso cliente. Cioè, ogni risorsa che vengono richieste dal server dovrà fornire le credenziali di autenticazione di nuovo in . per ricevere la risorsa Fortunatamente, il browser si prende cura dei dettagli qui, in modo da avere solo digitare il nome utente e la password una sola volta per ogni sessione del browser - che è, potrebbe essere necessario digitare di nuovo la prossima volta che aprire il browser e visitare lo stesso sito web ".

Informazioni dettagliate nel Apache Auth documentazione .

Altri suggerimenti

La mia esperienza è con Apache 2.x solo.

  1. Sì. Sarà lineare con il provider di autenticazione predefinito (file). Esso utilizza ap_cfg_getline() quindi sarà lineare per numero di linee (utenti).
  2. Sì. mod_aaa deve analizzare la password ogni volta. Si può usare qualcosa di simile a MemCookie per biscotto o token di autenticazione basata.

L'analisi di un file, una volta al momento dell'accesso dovrebbe scalare abbastanza bene, non importa quanti utenti ci sono. Io davvero non mi preoccuperei. In futuro, è possibile sviluppare un approccio guidato database con corretta indicizzazione. Ho il sospetto di tutti i colli di bottiglia sarete in esecuzione nello sviluppo di un sito, di base Auth non sta per essere uno di loro per un tempo molto molto lungo -. A meno che il server web è di gran lunga sottodimensionato

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top