webnt

WING FHNW

WING FHNW


D. Z.
Diese Lernkarten bieten einen umfassenden Überblick über Netzwerkprotokolle und -technologien auf Universitätsniveau. Sie konzentrieren sich auf HTTP, WebSocket und MQTT, wobei Themen wie Anfragen, Adressen, Serverkommunikation und Protokollfunktionen behandelt werden. Besonders nützlich sind sie für Studierende und IT-Profis, die sich mit Webtechnologien und Netzwerkarchitekturen vertraut machen möchten.
Karten
189
Lernende
2
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
14.01.2023 / 17.01.2023

Lernkarten

Die Methode "self.end_headers()" führt in der Response eine leere Zeile ein.

Eine HTML Repsonse muss immer aus einem HTML File gelesen werden.

Die OpenAPI-Initiative (OAI) wurde von einem Konsortium zukunftsorientierter Branchenexperten ins Leben gerufen, die den immensen Wert einer Standardisierung der Beschreibung von APIs erkannt haben.

RESTful API => OpenAPI Spezifikation

Wie funktioniert Request - Response bei einer Webapplikation?

Wie funktioniert Request - Response bei einem Webservice?

Wofür ist das Richardson Maturity Model (RMM)?

Model zur Bestimmung der Reife eines Services im Bezug auf seine „RESTfulness“

 

Welche stufen hat das RMM?

Stufe 0 – RESTless --> kein REST Support

Stufe 1 – Ressourcen --> Jede identifizierbare Ressource hat eine eigene URI.

Stufe 2 – HTTP-Verben --> GET, POST, HEAD, PUT, DELETE und OPTIONS werden gemäss ihrer Spezifikation unterstützt. & HTTP Statuscode soll den Status der Verarbeitung beschreiben

Stufe 3 – Hypermedia --> Verknüpfung von Ressourcen und Repräsentationen durch Hyperlinks.

Wofür ist ein Statuscode?

Durch die Übermittlung eines HTTP-Statuscodes teilt der Webserver dem Client mit, ob die HTTP-Anfrage erfolgreich bearbeitet werden konnte oder ob es zu einem Fehler beim Aufruf einer URL gekommen ist.

Welche HTTP Statuscodes gibt es?

1xx Informational (Informationen)

2xx Success (Erfolgreiche Operation)

3xx Redirection (Umleitung oder Weiterleitung)

4xx Client Error (Client Fehler / Fehlerseiten)
¨ 5xx Server Error (Webserver Fehler

Welche Payload Serialisierungen gibt es?

JSON und XML

Welche Vor und Nachteile hat die Serialisierung in XML?

Pros
Zusammen mit einem Schema kann dank Validierung eine hohe Konsistenz des Datenaustausches erreicht werden.
Sehr genaue Beschreibung des Datenaustausch-Formats möglich.

Contra
Parsing und Validierung bzgl. eines Schemas ist teuer.
Sehr Verbose: Bzgl. den Nutzdaten viel zusätzlicher "Balast"

Welche Vor und Nachteile hat die Serialisierung in JSON?

Pros
JSON ist ein JavaScript-Objekt à sehr einfache Serialisierung/Deserialisierung in einer JavaScript Umgebung
Einfach, kompakt à weniger Netzwerklast

Cotras
Unterstützt nur einfache Datenstrukturen wie Variablen, Arrays, Hashmaps.
Beschreibung des Datenaustausch-Formats ist beschränkt.

Einfügen Restful lvl 2

Anfordern Restful lvl 2

Welche Aufgabe hat die Firewall?

Eine Firewall analysiert den Datenverkehr im Netz und kann damit Server, PCs und Netzwerke vor Angriffen schützen. Wörtlich übersetzt bedeutet Firewall "Brandmauer". Der Begriff bezeichnet ein IT-System, das Datenverkehr analysieren, weiterleiten oder blockieren kann.

Was wäre wenn es keine Firewall geben würde?

Ohne eine Firewall können andere Menschen und Programme Zugriff auf Ihren Computer nehmen und im schlimmsten Fall auf ihre sensiblen Daten zugreifen.

Wofür sorgt eine Firewall?

Die Firewall sorgt dafür, dass von ausserhalb ihres Netzwerks ein Zugriff über einen offenen Port auf ihren Rechner ausgeführt werden kann.

Wieviele Firewalls hat man in der Regel?

Im Regelfall haben sie zwei Firewalls: Die Personal Firewall auf ihrem Computer und die externe Firewall.

Wie funktioniert eine Firewall?

Eine externe Firewall (auch Netzwerk- oder Hardwarefirewall genannt) kontrolliert die Verbindung zwischen zwei Netzen und dient dazu, den Netzwerkzugriff zu beschränken, basierend auf Absender- oder Zieladresse und genutzten Diensten. Sie überwacht den durch die Firewall laufenden Datenverkehr und entscheidet anhand festgelegter Regeln, ob bestimmte Netzwerkpakete durchgelassen werden oder nicht. Auf diese Weise versucht sie, unerlaubte Netzwerkzugriffe zu unterbinden.

Motivationen für das HTTP Polling

- Firewall
Anforderung: Eine verteilte Anwendung muss im Internet über eine StandardICT-Infrastruktur kommunizieren können, inkl. den Firewalls.
Restriktion Firewall: Der Aufbau einer Kommunikation ist nur von einem Client aus möglich.

- "Echtzeit"
Anforderung: Neue Daten auf dem Server in "Echtzeit" zum Client kommunizieren können.
Restriktion HTTP: HTTP beschränkt die Kommunikation auf ein Request/Response Modell mit dem Client als Initiator des Kommunikationsaufbaus (siehe Firewall).

- Bidirektionale Kommunikation
Anforderung: Client und Server als gleichwertige Kommunikationspartner.
Restriktion HTTP: Request/Response Modell von HTTP ist Half-Duplex.

Was ist der Lösungsanatz beim Polling?

Beim Polling wird der Server in einem festgelegten Intervall gefragt, ob er neue Informationen hat.

Welche Vorteile hat das Polling?

Mit HTTP umsetzbar

Ist einfach zu realisieren, da alle notwendigen Funktionen in Python vorhanden sind

Welche Nachteile hat das Polling?

Grosser Overhead des Netzwerkes

Zusätzliche, unnötige Last auf dem Server

TCP/IP mit ihren Protokollen

 Die fundamentalen Elemente einer HTTP Kommunikation

was bedeutet der "Stateless" Zustand?

"stateless" bezeichnet die Eigenschaft eines Protokolls, mehrere Anfragen – auch desselben Clients – grundsätzlich als voneinander unabhängige Transaktionen zu behandeln. Insbesondere werden Anfragen ohne Bezug zu früheren Anfragen behandelt und keine Sitzungsinformationen ausgetauscht und/oder verwaltet.

Problem HTTP & Lösung Websocket

Welche Art von Kommunikation ermöglicht Websocket?

erlaubt Full-Duplex Kommunikation über TCP-Verbindungen

Wie funktioniert der Websocket?

startet beim Client, der wie bei HTTP einen Request initiiert, mit dem Unterschied, dass nach der Übertragung der Daten zum Verbindungsaufbau die zugrundeliegende TCP-Verbindung bestehen bleibt.

Websocket Protokoll

Websocket Verbindung

Einfache Integrierbarkeit in bestehende ICT-Infrastrukturen des Internets:
- WebSocket ist als Upgrade des HTTP-Protokolls konzipiert: => Das Opening Handshake ist ein valider HTTP-Request
- WebSocket baut nach dem Upgrade eine stehende TCP-Verbindung zwischen Client und Server auf.

Die WebSocket-Spezifikation definiert zwei neue URI-Schemas:
- ws: für unverschlüsselte Verbindungen
- wss: für verschlüsselte Verbindungen

Ist WebSocket ein Protokoll oder Transport?

WebSocket spezifiziert den Auf- und Abbau einer Verbindung.

WebSocket kennt keine Regelung bzgl. der Strukturierung der eigentlichen Daten, d.h. des Payloads.

Ein Teil der Spezifikation sieht die Möglichkeit vor, dass sich Client und Server auf ein Protokoll einigen, mit dem die übertragenen Daten formatiert und interpretiert werden sollen.
--> In der Norm werden diese als "Unterprotokolle" bezeichnet, um Unklarheiten in der Nomenklatur zu vermeiden. Beispiele für Unterprotokolle sind JSON, XML, MQTT, ...

Was für eine Art Protokoll ist das Websocket?

Ein Low-Level Protokoll

Zusätzliches Applikationsprotokoll als "Unterprotokoll" ist notwendig, das sowohl vom Client wie auch vom Server interpretiert werden kann.

Was beinhaltet ein Applikationsprotokoll?

Das Applikationsprotokoll kann folgendes beinhalten:

- Daten wie Funktion, Payload, Zeitstempel, ...

- Format wie Text, Binär, JSON, XML, ...

Wie wird eine Websocket-Verbindung agebaut?

Um die Verbindung zu schliessen, wird ein Closing Handshake durchgeführt:

- Die Seite, welche die Verbindung schliessen möchte, muss dazu ein Frame mit dem Befehlscode ”0x8“ senden.

- Nachdem eine Seite sowohl einen Close-Frame empfangen als auch gesendet hat, muss sie die TCP-Verbindung trennen.

- Durch dieses Vorgehen stellt es auch kein Problem dar, falls beide Seiten zur selben Zeit die Verbindung trennen möchten: Da beide Seiten parallel einen Close-Frame senden und kurz darauf den der anderen Seite empfangen, können sie die Verbindung direkt trennen.

Eigenschaften des Websocket

- bidirektional (full-duplex)

- internettauglich

- sicher: mittels TLS

- Plattformunabhängig: Java, C++..

Was ist das Websocket nicht:

dauerhaft:

WebSocket-Verbindungen werden in einem Internet-Kontext betrieben, d.h. Webserver, Firewall, Routers, ... Deshalb können WebSocketVerbindungen durch solche Komponenten abgebaut werden, falls Inaktivität über eine gewisse Periode festgestellt wird.

Wie wird das Websocket im Betrieb gehalten

Mittels Ping-Pong Messages

Problemlösung Websocket: Sinnbild

Was muss bereitgestellt werden um ein Upgrade Request durchzuführen?

Der Upgrade Request ist ein HTTP GET Request.

Der Kommunikationspartner (Server) muss einen entsprechenden HTTP-Endpoint bereitstellen, der den Upgrade Request entgegennehmen kann.

Unterschiede HTTP und Websocket

HTTP:
- unidirectional (client always initiates request)
- stateless (closed by the server)
- half-duplex (request-response pattern)

Websocket:
- bidirectional (client and server can send messages)
- stateful (connection is persistent)
- full-duplex (client and server can send messages independently of each
other)

Study