Web Engineering I - Stundenplan

Der Stundenplan dient als Tagebuch, um festzuhalten, was wir tatsächlich in den Vorlesungen gemacht haben. Hier kündige ich auch an, welche Übungsaufgaben Sie bis zum nächsten Termin anschauen sollten.

Hier finden Sie den Stundenplan vom Herbst 2022.


5. Januar 2024 Wiederholung Cookies und Same-Origin-Policy. Tracking mit Cookies. Übungsaufgaben und Arbeit am Projekt.
15. Dezember 2024 Mehr zu Cookies: Same-Site Policy, Cross-Site Request Forgery (Beispiel: Ausloggen mit unschuldigem Link-Klick auf einer dritten Seite). Same-Site-Policy-Werte Strict, Lax, None und was die für bestimmte Aktionen bedeuten.
8. Dezember 2024 Cookies. Authorisierung am Beispiel des Login-Servers 13-login-server. Sicherheitslücke Cross-Site Scripting zum Ausspionieren der Session-ID.
1. Dezember 2023 Grafik mit Svg-Elementen.
24. November 2023 Von Javascript heraus Kommunikation mit dem Browser initiieren: Ajax und Websockets.
17. November 2023 Javascript im Browser. Meine Beispielseite für Range-Input-Elemente in Html finden Sie hier.
10. November 2023
  • Server mit express.js programmieren. Ein Beispiel finden Sie in 2023-11-10.zip
  • Html-Gerüst, Inhalt und Code trennen mit ejs. Ein Beispiel finden Sie in 2023-11-10-ejs.zip
3. November 2023 Auf Nutzerinput reagieren.
  • Zwei verschiedene Implementierungen eines Minesweeper-Spiels: minesweeper-schellenberger.zip und minesweeper-scheder.zip. Jede Minesweeper-Kachel enthält ein a-Element, also einen Link. Dessen href-Attribut, also der URL sagt dem Server, was der User getan (wo geklickt) hat. In Herrn Schellenbergers Implementierung codiert dieser URL den gesamten Spielverlauf. In meiner codiert er nur den aktuellen Spielzug (z.B. mark 3 5 oder uncover 3 5). Bei mir ist also der Spielzustand auf dem Server gespeichert, bei Herrn Schellenbergers Implementierung ist der Server vollständig zustandslos. Letzteres hat den Vorteil, dass Sie die normale Browsernavigation (den back button, Booksmarks, URL in der Adresszeile) verwenden können, um z.B. in Zukunft auf alte Spielzustände zurückzugreifen. Nachteil ist, dass die Seite Größe Θ(wht) haben, meine nur Θ(wh), wobei w und h die Breite und Höhe des Spielfeldes sind. Wenn also n=wh die Anzahl der Kacheln ist und wir davon ausgehen, dass man Θ(n) Schritte braucht, um das Spiel erfolgreich zu beenden (z.B. muss man alle Bomben markiert haben), dann ergeben sich Seitengrößen von Θ(n2) bei Herrn Schellenberger und Θ(n) bei mir.
  • Die "richtige" Weise, mit Nutzerinput umzugehen: die Html-Elemente form und input und button.
  • Das Querystring-Format, z.B. /search?author=Smith&title=Algorithms
  • Wie man auf Serverseite (mit node.js) den Querystring verarbeitet und darauf reagiert.
27. Oktober 2023 Webserver.
  • Primitiver Web-Server in Java: wir picken uns den Pfad aus dem Http-Request raus, lesen die Datei und schicken sie (samt Header zurück). Sicherheitsrisiko: wenn .. im Pfad enthalten ist.
  • Einführung in Javascript. Einen Webserver mit Javascript schreiben. Webserver, der eine Tabelle dynamisch aus Daten zusammenbaut.
20. Oktober 2023 TCP und Http
  • Datenströme: Input/Output von der Konsole. Von Dateien. Von Netzwerkverbindungen. Wie man mit Java einen Socket aufmacht (telnet, nc oder MyTelnet.java) und einen Serversocket aufmacht. Einen Nicht-Http-Server in Java, z.B. AltCapsServer.java. Ein generischer "händischer" 1-Socket-Server OnePersonServer.java.
  • Mit einen Webserver kommunizieren. Das Protokoll Http. Request, Response.
13. Oktober 2023 Den Seiten Stil und Layout geben mit Css.
6. Oktober 2023 Webseiten gestalten mit Html.