469 Stimmen

Was ist der Unterschied zwischen HTTP und REST?

Nachdem ich viel über die Unterschiede zwischen REST und SOAP gelesen habe, hatte ich den Eindruck, dass REST nur ein anderes Wort für HTTP ist. Kann jemand erklären, welche Funktionen REST zu HTTP hinzufügt?

Hinweis : Ich bin nicht auf der Suche nach einem Vergleich zwischen REST und SOAP.

23voto

Pritam Banerjee Punkte 16396

REST = Repräsentative Zustandsübertragung

REST ist eine Reihe von Regeln, die, wenn sie befolgt werden, es ermöglichen, eine verteilte Anwendung zu erstellen, die eine bestimmte Anzahl von wünschenswerten Einschränkungen hat.

REST ist ein Protokoll zum Austausch beliebiger Nachrichten (XML, JSON usw.), die über HTTP transportiert werden können.

Merkmale:

Es ist zustandslos, was bedeutet, dass idealerweise keine Verbindung zwischen Client und Server aufrechterhalten werden sollte. Es liegt in der Verantwortung des Clients, seinen Kontext an den Server zu übermitteln, und der Server kann diesen Kontext dann speichern, um weitere Anfragen des Clients zu bearbeiten. Die vom Server verwaltete Sitzung wird beispielsweise durch den vom Client übermittelten Sitzungsbezeichner identifiziert.

Vorteile der Staatenlosigkeit:

  1. Webdienste können jeden Methodenaufruf separat behandeln.
  2. Webdienste müssen die vorherige Interaktion des Kunden nicht aufrechterhalten.
  3. Dies wiederum vereinfacht das Anwendungsdesign.
  4. HTTP ist im Gegensatz zu TCP selbst ein zustandsloses Protokoll, so dass RESTful Web Services nahtlos mit den HTTP-Protokollen zusammenarbeiten.

Nachteile der Staatenlosigkeit:

  1. Eine zusätzliche Schicht in Form einer Überschrift muss zu jeder Anfrage hinzugefügt werden, um den Zustand des Kunden zu erhalten.
  2. Aus Sicherheitsgründen müssen wir jeder Anfrage eine Header-Information hinzufügen.

Von REST unterstützte HTTP-Methoden:

GET: /string/someotherstring Sie ist idempotent und sollte im Idealfall bei jedem Aufruf das gleiche Ergebnis liefern

PUT: Dasselbe wie GET. Idempotent und wird zur Aktualisierung von Ressourcen verwendet.

POST: sollte eine Url und einen Textkörper enthalten Wird für die Erstellung von Ressourcen verwendet. Mehrere Aufrufe sollten idealerweise unterschiedliche Ergebnisse liefern und mehrere Produkte erstellen.

LÖSCHEN: Dient zum Löschen von Ressourcen auf dem Server.

KOPF:

Die HEAD-Methode ist identisch mit der GET-Methode, mit der Ausnahme, dass der Server in der Antwort KEINEN Nachrichtentext zurückgeben MUSS. Die in den HTTP-Headern enthaltenen Metainformationen in der Antwort auf eine HEAD-Anfrage SOLLTEN identisch mit den Informationen sein, die in der Antwort auf eine GET-Anfrage gesendet werden.

OPTIONEN:

Diese Methode ermöglicht es dem Client, die mit einer Ressource verbundenen Optionen und/oder Anforderungen oder die Fähigkeiten eines Servers zu bestimmen, ohne eine Ressourcenaktion zu implizieren oder eine Ressourcenabfrage zu initiieren.

HTTP-Antworten

Alle Antworten finden Sie hier .

Hier sind ein paar wichtige davon: 200 - OK 3XX - Zusätzliche Informationen werden vom Kunden benötigt und die Adresse wird umgeleitet 400 - Schlechte Anfrage
401 - Unberechtigter Zugriff
403 - Verboten
Die Anfrage war gültig, aber der Server lehnt eine Aktion ab. Der Benutzer hat möglicherweise nicht die erforderlichen Berechtigungen für eine Ressource oder benötigt ein Konto.

404 - Nicht gefunden
Die angeforderte Ressource konnte nicht gefunden werden, könnte aber in Zukunft verfügbar sein. Nachfolgende Anfragen des Clients sind zulässig.

405 - Methode nicht erlaubt Eine Anfragemethode wird für die angefragte Ressource nicht unterstützt, z. B. eine GET-Anfrage für ein Formular, das die Übermittlung von Daten per POST erfordert, oder eine PUT-Anfrage für eine schreibgeschützte Ressource.

404 - Anfrage nicht gefunden
500 - Interner Server-Fehler
502 - Schlechter Gateway-Fehler

14voto

LiamB Punkte 17715

Nicht ganz...

http://en.wikipedia.org/wiki/Representational_State_Transfer

REST wurde ursprünglich in der Kontext von HTTP beschrieben, ist aber nicht auf dieses Protokoll. RESTful-Architekturen können auf anderen Anwendungen basieren Schichtprotokollen basieren, wenn diese bereits ein reichhaltiges und einheitliches Vokabular für Anwendungen, die auf der Übertragung eines aussagekräftigen Repräsentationszustandes. RESTful-Anwendungen maximieren die Nutzung der bereits existierenden, wohldefinierten Schnittstelle und anderer eingebauter Fähigkeiten, die von dem gewählten Netzwerkprotokolls zur Verfügung stehen, und minimieren die Hinzufügen von neuen anwendungsspezifischen Funktionen zu minimieren.

http://www.looselycoupled.com/glossary/SOAP

(Simple Object Access Protocol) Das Standard für Webservice-Nachrichten. SOAP basiert auf XML und definiert ein Umschlag Format und verschiedene Regeln zur Beschreibung seines Inhalts. Wird (zusammen mit WSDL und UDDI) als einer der drei Basisstandards für Webdienste, ist es das bevorzugte Protokoll für den Austausch von Webdiensten, aber bei weitem nicht keineswegs das einzige; Befürworter von REST sagen, dass es unnötige Komplexität.

13voto

Mike Punkte 3332

REST ist ein spezieller Ansatz für die Gestaltung großer Systeme (wie dem Web).

Es handelt sich um eine Reihe von "Regeln" (oder "Zwängen").

HTTP ist ein Protokoll, das versucht, diese Regeln zu befolgen.

11voto

Farsan Rashid Punkte 1369

De Sie kennen den Unterschied zwischen HTTP und REST nicht

Die REST-Architektur und das Protokoll HTTP 1.1 sind also unabhängig voneinander voneinander, aber das HTTP 1.1-Protokoll wurde als ideales Protokoll entwickelt, um den Grundsätzen und Beschränkungen von REST zu folgen. Eine Möglichkeit zur Betrachtung der Beziehung zwischen HTTP und REST ist, dass REST der Entwurf ist und HTTP 1.1 ist eine Umsetzung dieses Entwurfs.

9voto

vamsi Punkte 101

HTTP ist ein Kommunikationsprotokoll, das Nachrichten über ein Netzwerk transportiert. SOAP ist ein Protokoll zum Austausch von XML-basierten Nachrichten, das HTTP zum Transport dieser Nachrichten verwenden kann. Rest ist ein Protokoll für den Austausch beliebiger (XML- oder JSON-) Nachrichten, die über HTTP transportiert werden können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X