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.
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 haben, meine
nur , wobei und die Breite und Höhe des
Spielfeldes sind. Wenn also die Anzahl der Kacheln ist
und wir davon ausgehen, dass man Schritte braucht, um das Spiel
erfolgreich zu beenden (z.B. muss man alle Bomben markiert haben), dann
ergeben sich Seitengrößen von bei Herrn Schellenberger
und 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.