Was ist der Unterschied zwischen Sockets und REST Services?

16.02.2017

Sockets werden für die Netzwerkprogrammierung verwendet, genauso wie REST oder SOAP Services. Man will also, dass zwei Rechner miteinander sprechen können.

Wann sollte man aber Sockets nehmen und wann REST Services?

Das Protokoll macht den Unterschied

Im Informatikstudium durften wir in einem Fach einen eigenen Chat in Java programmieren. Dazu haben wir Sockets verwendet. Man hat also auf zwei Rechnern je einen Chat Client gestartet, die miteinander reden sollten. Nun war aber noch die Frage, wie die Daten ausgetauscht werden müssen? Eine Nachricht erhält ja mindestens ein Datum, den Chatnamen und die Nachricht.

Für die Definition dieser Nachricht mussten wir ein Protokoll erstellen. Ein Protokoll, welches sagt: „An erster Stelle kommt das Datum, dann der Chatname“ und so weiter. Dieses Protokoll oder Nachrichtenformat konnten wir dann beliebig zwischen uns Studenten austauschen. Sobald mein Kollege mein Protokoll hatte, konnte er seine Implementierung des Chats mit diesem Protokoll versehen und fortan wusste er, wie ich Nachrichten an ihn senden würde.

REST und HTTP und SOAP

Genauso muss wohl auch die Entwicklung der bekannten Protokolle gestartet haben. Irgendwann denkt man nämlich „ja gut, mein Kollege und ich können nun Nachrichten austauschen, aber was ist, wenn ich etwa einen Dienst von Google aufrufen will? Dann muss ich denen klar machen, wie mein Protokoll aussieht?“

Genau dafür wurden Protokolle standardisiert und sind heute im Einsatz. Das HTTP Protokoll für den Austausch über das Internet. REST Services für den Zugriff auf Ressourcen und SOAP Webservices für explizite Dienstleistungen.

Wie sieht das in der TCP/IP Architektur aus?

Die TCP/IP Architektur ist ein Ausschnitt vom ISO/OSI-Modell und hat vier Schichten:

1. Die Schnittstellensicht ist quasi ganz unten und steht für die physische Verbindung vom Rechner zum Netz.

2. Die nächste Schicht ist die Internetschicht, die zum Aufbau und Betreiben einer Kommunikation zwischen Rechnen in einem Netzwerk dient. Dort ist auch das Internet Protokoll (IP) zuhause.

3. Die dritte Schicht ist die Transportschicht, welche den Programmen auf einem Rechner Transportdienste zur Verfügung stellt. Hier kommt entweder TCP oder UDP zum Einsatz. Auf dieser Ebene finden auch Sockets statt.

4. Die oberste Schicht ist die Anwendungsschicht. Hier geht es um die konkreten Anwendungen auf einem Rechner. Diese Schicht enthält unter anderem die Protokolle HTTP oder FTP. REST verwendet für die Übertragung das HTTP oder HTTPS Protokoll auf dieser Schicht. Bei SOAP können zum Senden von Nachrichten beliebige Transportprotokolle verwendet werden, etwa FTP, SMTP, HTTP oder auch JMS. Meistens wird aber auch hier das HTTP oder HTTPS Protokoll verwendet.

Und was ist mit Websockets?

Websocket ist ebenfalls ein Protokoll für die Übertragung über das Netz – Im Gegensatz zu Sockets liegt dieses aber auf der Anwendungsschicht, nicht auf der Transportschicht. Das Thema Websockets wäre aber wohl genug Stoff für einen eigenen Blogeintrag.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit deinem WordPress.com-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s