Historie: Entstehung des
WWW (inkl. Kernideen von Tim Berners-Lee) bis heute → siehe Folien
Wie haben Webserver früher (vor
W3C und Standards) passende/richtige
HTML-Dateien ausgeliefert, sodass diese vom Browser verstanden wurden? → Browser sendet user-agent; Webserver schickt zum Browser und Engine pasende
HTML-Datei.
HTTP-Historie:
HTTP 0.9 bis
HTTP/2 (inkl. aller Features und head-of-line-blocking) → siehe Folien
Wo kann ich einen Stream stoppen/pausieren? → am Ende eines Frames
Wie groß ist ein Frame? Ist er größer als ein TCP-Paket? → die richtige Antwort ist: wir wissen es nicht; TCP ist dafür zuständig; aber normalerweise sollte ein Frame kleiner als ein TCP-Paket sein.
Kann das “head-of-line-blocking” Problem bei
HTTP/2 noch auftreten? → Nein, Frame kann/wird nicht geteilt und damit muss auch nicht blockiert/gewartet werden.
HTTP/2 Priorisierung: Warum und technische Umsetzung? → siehe Folien
HTTP/2 Priorisierung: Prof. hat Webseite skizziert mit index.html und drei Bildern. Ich soll den Anforderungsbaum zeichnen. → Datenabhängigkeiten berücksichtigen: zuerst
HTML-Datei, dann die Bilder auf der selben Ebene mit entsprechender Gewichtung
HTTP/2 Priorisierung: Wie sieht der Anforderungsbaum aus wenn zwei Bilder zuerst geladen werden sollen und später das andere, weil außerhalb des Sichtfelds? → Struktur des Baumes bleibt gleich; man setzt die Gewichtung des dritten Bildes auf 0 (nicht sicher ob das stimmt)
Was sind die Phasen der Eventbehandlung? → Capturing, Target, Bubbling
Welche Phase wird am häufigsten verwendet und warum? → Bubbling, weil man in dem meisten Fällen zuerst das Element behandeln möchte, das das Event ausgelöst hat.
Wann nutzt man Capturing-Phase? → z. B. für Monitoring
Welche Kommunikationsschnittstellen haben wir kennengelernt? → XMLHttpRequest, Server Sent Events, Web Sockets, WebRTC
Was sind die Unterschiede der einzelnen Kommunikationsschnittstellen? → siehe Folien
Wann nutzte ich XHR, SSE, WX, WebRTC? → XHR: einfach Anfragen (z. B. Validierung von Userinputs); SSE: Austausch von Echtzeitinformationen (stromorientiert) textbasiert; WX: Austausch von stromorientierten Nachrichten in beide Richtungen (text und binär); WebRTC:
P2P (z. B. Videokonferenz, Desktopsharing)
Warum ist XHR schlecht für stromorientierte Kommunikation bzw. Austausch von Echtzeitinformationen? → selbst mit zeitverzögertem Polling (Comet) aufwendig und speicherintensiv
Was ist der Nachteil von SSE den WX nicht hat? → nur textbasierte Nachrichten; Konvertierung in binär (base64) aufwendig
Was ist Javascript und wie ist das mit der Nebenläufigkeit? → eventbasiert; es gibt keine echte Nebenläufigkeit; man kann zwar die web workers parallel zum Hauptthread laufen lassen; aber man kann nicht auf gemeinsame Variablen zugreifen
Ich wurde häufig unterbrochen und wollte eigentlich viel mehr erwählen zu jeder einzelnen Frage. Zumindest bei mir wurden viele Transferfragen gestellt, die mit den Vorlesungsfolien nicht zu beantworten waren. Er meinte er hätte einiges in den Vorlesungen (welche nicht aufgezeichnet wurden) erzählt. In den Folien konnte ich zu einigen Fragen keine Antwort finden.