Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » WBS 7.5 ECTS Prüfung März 2025

WBS 7.5 ECTS Prüfung März 2025

Meta Information

  • Klausurart: mündlich
  • Prüfer: Rüdiger Kapitza
  • Vorbereitung: Folien zusammengefasst

Allgemein:

die ersten paar Foliensätze (bis JavaScript) am besten fast komplett auswendig wissen und auch gut verstehen

zu den späteren (bis auf ggf. ein wenig Caching oder Web Security) kommen eigentlich nur Fragen falls ihr wirklich sehr gut seid (auf dem Weg zu 1,0 / 1,3) oder es selbst dahin lenkt

Prüfung

*Kapitza: Wer hat das WWW begründet, wann war das und was waren die wichtigsten Ideen?

Tim Berners Lee am CERN, 1990
HTML: Hypertext kannte er schon von enquire, Texte haben Nodes mit Eigenschaften und Verweisen
HTTP: Client fragt Webserver, textbasiert
URI: eindeutig identifiziert, URL heißt man kann auch dort nachfragen (L für Locator)

* Wie genau sieht eine HTTP Anfrage und Antwort aus?

GET /index.html HTTP/1.1
Host: localhost:2000
Accept: text/html
User-Agent: Mozilla/5.0 (Windows …)
200 OK
Content-Type: text/html
Content-Length: … (hatte ich vergessen)

* Welche HTTP Versionen gab es so und was waren die Verbesserungen?

HTTP 0.9:
Anfrage Antwort (client, webserver), zustandslos, textbasiert, TCP/IP
HTTP 1.0 & 1.1:
Connection: Keep-Alive
Pipelining: Dateien Anfragen bevor man Antwort bekommen hat
Head of Line Blocking
oft mit parallelen Verbindungen umgangen
ist nicht so gut, weil:
unnötig viele Handshakes,
Slow Start kommt sich in die Quere
(hab ich ehrlich gesagt nicht so ganz verstanden, aber hat ungefähr ausgereicht)
HTTP 2:
Nur noch eine Verbindung,
Anfrage → Stream, einzelne Teile Frames
Löst Head of Line Blocking, weil …

* Was genau wird gemultiplext?

Die TCP Verbindung (Frames bzw. Bandbreite als Antwort passt nicht ganz)

* Wie funktioniert die Priorisierung?

Jede Ressource Priorität zwischen 1 und 256
vom Browser festgelegt!
je nach Mausposition oder …
Server kann es ignorieren

* Zeichnen Sie mal den Baum dazu

Vorsicht:
Abhängigkeiten angeben heißt nicht, man gibt an was zuerst geladen wird, sondern in den Ressourcen stehen halt Links (bspw. index.html steht Verweis aus stylesheet)

* Wie funktioniert dier Header Kompression?

HPACK
statische vs dynamische Tabelle
Huffman Codierung
Server und Client merken sich dynamische Tabelle
gültig für eine TCP Verbindung

Lohnt sich die Header Compression denn so sehr?

Ja, allgemein sind Verbesserungen doch gut
Besonders nachdem die Komplexität von Seiten immer mehr zunimmt und man vllt unzählige Anfragen hat (vllt extrem viele mit Polling/…). Da jedes mal ewig viele Header Infos mitschicken macht schon einen Unterschied.

* Welche Browserschnittstelle hat Seiten mit viel Content usw möglich gemacht?

nicht verstanden

* Wie war es denn mit dem Web 2.0?

Seiten sehen schöner aus etc.. Benutzer interagieren mehr mit Seiten, schreiben Blogs, … Facebook wird groß

Wodurch wurde das denn erst möglich?

nicht geblickt. Er meinte XHR Requests, wegen ajax (asynchron!)
XHR Requests erzählt, normale http Request, Browser kann währenddessen normal reagieren da asynchron, kurz SOP und CORS (aber nicht richtig, hätte ich wenn dann schon ausführlich erzählen sollen)

* Wie konnte man hier Updates zu neuen Infos erhalten?

Bspw Polling: wiederholt Anfragen schicken
verzögertes Polling/Comet: Server hält Verbindung und antwortet dann

* Welche anderen Browser Schnittstellen gibt es noch?

SSE:
textbasiert
basiert auf HTTP,
Server kann noch mehr Anfragen schicken
EventSource Schnittstelle des Browsers

* Anwendungsfall dafür?

Liveticker, bspw Fußball

* Nachfrage, warum ist verzögertes Polling schlechter als SSE?

extra Aufwand durch wiederholte Anfragen (Header/…) → stimmt, aber ist nicht alles
extra Aufwand da Server Verbindung halten muss, Verbindung timed aus → ist bei SSE auch so
er wollte hören: wenn zwei neue Infos nacheinander kommen ist bei Comet die 2. ziemlich verzögert, weil der Client erst neu anfragen muss

* Wie könnte man mit einem timeout umgehen (weil ich es ja angesprochen habe)?

Statuscode 1XX Informational Responses können anzeigen, dass Server noch etwas Zeit braucht
außerdem ggf. leere Response schicken und dann halt neue Anfrage

* Was war so das neue an WebSockets?

bidirektionaler flussorientierte Datenaustausch (Client kann auch Senden)
bei SSE konnte ja nur der Server wiederholt senden
Man kann auch blobs also nicht nur Text versenden
Anwendungsfall: Chat

* Wie könnte man denn bei SSE Dateien schicken? (blobs gehen ja nicht so richtig)

Antwort: ja irgendwie die Bits kodieren bspw. hexadezimal
Richtig wäre mit base64, aber ist natürlich auch sehr ineffizient

Fragen/Themen anderer Studenten

* Was sind blockbildende Tags?

* Welche CSS Regel gewinnt? Die spezifischere (inline > id > class > tag > * *)

* Wie geht Multiplexen genau?