it-swarm.com.de

Sitzung in RESTful-Webdiensten, wie funktioniert das?

Woher weiß der Server in einem Webdienst, welche Anforderung zu welcher Sitzung gehört?

Ich weiß, dass der Webserver für eine Webanwendung das Cookie (oder den Abfrageparameter sessonId, falls Cookies deaktiviert sind) überprüft, damit er weiß, welcher Sitzung die Anforderung zugeordnet ist. Aber woher weiß der Server für eine Anfrage, die von einem Rest-Client kommt?

7
dnang

Wenn Ihre API wirklich über eine Sitzungsbehandlung verfügen muss, ist der Client dafür verantwortlich, die Sitzungs-ID zu verarbeiten und sie bei Bedarf zur URL hinzuzufügen. Wie genau Sie damit umgehen sollen, hängt von Ihrem Technologie-Stack ab. Beispiel: Rails verwendet standardmäßig Cookies, akzeptiert jedoch (falls aktiviert) auch einen _session_id-Parameter als Teil der URL.

Die relevanten Informationen, die normalerweise im Cookie zusammen mit der Sitzungs-ID gespeichert sind, müssen dann vom Server verarbeitet werden. In Rails) müssten Sie den Sitzungsspeicher vom Cookie-Speicher auf eine der Serveroptionen umschalten, z. B. das Speichern in der Datenbank oder das Speichern mit der Sitzungs-ID als Schlüssel.

Sie sollten jedoch zweimal überlegen, ob Sie diese Funktion zu Ihrer API hinzufügen möchten. Wenn Sie zustandslos sind, wird Ihre API einfacher und leichter zu warten sein. Wenn möglich, ist es vorzuziehen, den Kunden über den Status nachdenken zu lassen und bei jeder Anfrage alle erforderlichen Informationen zu senden. (wie die Verwendung der HTTP-Basisauthentifizierung anstelle des Speicherns eines aktuellen Benutzers in einer Sitzung).

8