Ein Server unterscheidet zwischen zwei Browser -Anwendungen, die gleichzeitig über eine Kombination von Techniken auf dieselben HTTP -Dateien zugreifen, die sich hauptsächlich um
Client -Identifikatoren drehen und
Verbindungsmanagement :
1. IP -Adressen und Ports: Jede Browseranwendung stellt sich selbst auf demselben Computer eine Verbindung zum Server aus einer eindeutigen Kombination aus IP -Adresse und Portnummer her. Die IP -Adresse identifiziert den Netzwerkstandort des Clients, und die Portnummer unterscheidet verschiedene Anwendungen, die auf diesem Computer ausgeführt werden. Während mehrere Browser -Instanzen auf demselben Computer dieselbe IP -Adresse (aus Sicht des Servers) teilen, haben sie unterschiedliche Portnummern, die ihren Verbindungen zugeordnet sind. Der Server verwendet diese Kombination, um einzelne Anforderungen zu verfolgen.
2. HTTP -Header: HTTP -Anfragen enthalten Header, die Informationen über den Client und die Anfrage enthalten. Zu den wichtigsten Header, die zur Identifizierung verwendet werden, gehören:
* `user-Agent`: Dieser Header identifiziert das Browser- und Betriebssystem. Obwohl es nicht perfekt einzigartig ist, unterscheidet es zwischen verschiedenen Browsern oder Browserversionen.
* `connection`: Dieser Header gibt an, ob die Verbindung für nachfolgende Anforderungen (persistierende Verbindung) oder nach der aktuellen Anforderung geschlossen oder geschlossen werden sollte.
* Cookies: Cookies sind kleine Datenstücke, die auf dem Computer des Kunden gespeichert und mit jeder nachfolgenden Anfrage gesendet werden. Sie ermöglichen dem Server, einen bestimmten Benutzer oder eine bestimmte Sitzung über mehrere Anforderungen hinweg zu verfolgen. Während Cookies über Registerkarten geteilt werden können, können sie immer noch dazu beitragen, Benutzer zu differenzieren, wenn die ordnungsgemäße Cookie -Verwaltung verwendet wird.
* Anfrage Header: Andere Header können eindeutige Kennungen enthalten, die von der Anwendung oder dem Browser zugewiesen wurden, wodurch die Identifizierung weiter verbessert wird.
3. Sitzungsmanagement: Für interaktive Webanwendungen verwenden Server häufig Sitzungen. Eine Sitzungs -ID (häufig in einem Cookie gespeichert) wird jedem Benutzer zugewiesen, wenn er eine Sitzung startet. Nachfolgende Anforderungen desselben Benutzers enthalten die Sitzungs -ID, mit der der Server den Status verwalten und die Interaktionen des Benutzers über mehrere Anforderungen hinweg identifiziert werden kann.
4. Verbindungsverfolgung: Der Server verwaltet einen Verbindungspool, der offene Verbindungen von verschiedenen Clients verfolgt. Jede Verbindung ist einer eindeutigen Kennung (z. B. einem Socket -Deskriptor) zugeordnet, mit dem der Server Anforderungen für jede Verbindung unabhängig verarbeiten kann.
Im Wesentlichen wirkt der Server wie eine Switchboard, die Anfragen aus verschiedenen Quellen (Browserinstanzen über IP:Port und Header) empfängt und sie anhand der bereitgestellten Informationen angemessen anweisen. Auch wenn mehrere Anfragen gleichzeitig eintreffen, verarbeitet der Server sie einzeln oder gleichzeitig mit Threads oder Prozessen, wobei der Kontext jeder Anforderung über die in der Anforderung selbst und der zugehörigen Verbindung bereitgestellten Informationen beibehält.