Was macht REST-Prinzip der Staatenlosigkeit bedeutet eigentlich?
Nach der Lektüre der einleitenden Artikeln, die auf REST (Fielding ' s thesis und andere) meine Wahrnehmung von Staatenlosigkeit ist, dass es keine session-Objekte auf der server-Seite. Dennoch sehe ich Kolben (und vielleicht andere REST-frameworks in verschiedenen Technologien, die ich nicht kennen) gibt uns ein session-Objekt zum speichern von Informationen auf dem server in diesem Beispiel:
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
session['username'] = request.form['username']
return redirect(url_for('index'))
...
Sicher, ich bin Missverständnis REST der Staatenlosigkeit. Also, was ist es wirklich?
- Das ist eine gute Frage. Ich habe keine Ahnung von der Antwort, aber kann es sein, das alte Sprichwort, dass Pragmatismus schlägt Dogmatismus die ganze Zeit 🙂 Obwohl Sie zweifellos bekommen, eine mehr gebildete Antwort in Kürze.
- Ja, ich spüre jemanden, Eingabe der Antwort, und legen Sie es nach unten schön mit vielen Zwecken.
- Verwandte: stackoverflow.com/questions/3105296/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwecke der Einführung der Einschränkung der Staatenlosigkeit im ÜBRIGEN gehören Verbesserungen der Sichtbarkeit, Zuverlässigkeit und Skalierbarkeit. Dies bedeutet, dass die Stimmrechtsvertreter und sonstige Vermittler sind besser in der Lage zu beteiligen in der Kommunikation Muster, die beinhalten, sich selbst beschreibende stateless-Nachrichten, server Tod und failover nicht Ergebnis in der session-state-synchronisation Probleme, und es ist einfach zum hinzufügen neuer Server zur Bearbeitung von client erneut geladen werden, ohne die die Synchronisierung des Sitzungsstatus.
REST erreicht Staatenlosigkeit durch eine Reihe von Mechanismen:
Den Nachteil der Staatenlosigkeit ausgesetzt ist, in diesem letzten Punkt: Anwendungen, die verlangen eine Art von session-Zustand beibehalten über die Dauer eines einzelnen Requests zu haben, dass Staat zurück an den client gesendet als Teil der Antwort-Nachricht. Nächste mal, wenn der client möchte eine Anfrage, wird der Status erneut an den service und dann zurück an den client.
erhalten Sie mehr Infos hierhttp://soundadvice.id.au/blog/2009/06/
Nein, Sie verstehen gut. Es sollte nicht jeder "Sitzung" in einem RESTful-service. Überprüfen Sie immer, dass Sie senden können URI per E-mail, halten Sie es in einem Lesezeichen, und verweisen in den links. Dies ist in der Tat, warum ERHOLUNG so wichtig für das Web: keine RESTful-Ressourcen = keine links mehr. Die Authentifizierung sollte nur durchgeführt werden, wenn der Zugriff auf die Ressource-Darstellung.
Was man haben kann anstatt der Sitzungen ist ein Benutzer-Objekt (z.B. ein Warenkorb), die modifiziert werden können durch REST-Methoden. Dies unterscheidet sich von einer Sitzung, da, zum Beispiel, könnte es Dienste, wo man autorisieren, andere Menschen sehen Ihrem Warenkorb.
In der REST-Architektur, Session-Zustand gehalten wird vollständig auf dem client. Dies bedeutet, dass die Daten nicht auf dem server belassen in einen gemeinsamen Kontext und wir haben immer noch senden Sie die sich wiederholenden Daten (pro-Interaktion overhead) in einer Reihe von Anfragen.
Wie halten wir den Zustand der Anwendung auf der client-Seite reduziert der server die Kontrolle über konsistentes Verhalten der Anwendung, da die Anwendung ist abhängig von der korrekten Umsetzung der Semantik über mehrere client-Versionen.
Aber diese Einschränkung induziert die Eigenschaften der Sichtbarkeit, Zuverlässigkeit und Skalierbarkeit.
schauen Sie über die Grenzen einer einzelnen Anfrage datum, um zu bestimmen, die vollen
Art der Anfrage.
teilausfällen.
Anfragen können die server-Komponente, um schnell freie Ressourcen, und
die weitere Implementierung vereinfacht, da die server nicht zu
verwalten der Ressourcennutzung über Anfragen.
sehen http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm