Aufgaben |
-
Bitte erweitern Sie Ihren Webserver, so dass dieser eine Testseite
generiert (die Testseite ist beliebig zu gestalten) und dabei eine Statistik
über die Häufigkeit von Anfragen und die verwendeten Browser über alle 24
Stunden eines Tages führt.
Ihr Server soll gleichzeitig auf einem anderen Port eine https-Seite anbieten,
auf der die jeweils aktuelle Statistik dargestellt wird. Mailen Sie an die
NP-Mailingliste, wenn Sie Ihren Server aktiviert haben. Reagieren Sie selber auf
solche Mailings mit einem Testbesuch. Auf diese Weise sollen die Statistiken
gefüllt werden, und eine hinreichende Vielfalt von Browsertypen ermittelt werden
können. Speichern Sie die Informationen jeweils stabil ab, damit sie nicht
verloren gehen, wenn Sie Ihren Server neustarten müssen. Die Logdateien für
verschiedene Tage sollen nicht überschrieben werden. Verwenden Sie
ausschliesslich die Java-Bibliotheken zur Socketkommunikation, und keine
weiteren Bibliotheken.
Beispiel für eine Statistik:
- 0-1h: 10x Mozilla.., 3x Mozilla.., 2x IE..
- 1-2h: 5x Mozilla.., 3x Konqueror..
-
Die Resource http://www.ag-nbi.de/lehre/0708/V_NP/geheim5/geheim.txt ist
durch ein Password nach dem Basic Authentification Scheme geschützt. Schreiben
Sie ein Programm, das herausfindet, ob der notwendige Nutzername TinkyWinky,
Dipsy, Lala oder Po heisst und das Passwort blau, gelb, gruen oder rot lautet.
-
Bitte schreiben Sie einen Linkchecker. Das Programm soll in einer Textdatei eine
Liste von URLs erhalten (eine URL pro Zeile) und testen, ob sie zugreifbar sind.
Das Programm soll jeweils ausgeben, ob der Zugriff möglich ist, oder eine
möglichst detaillierte Fehlerbeschreibung ausgeben. Bitte testen Sie das
Programm anhand dieser Liste:
- http://www.spiegel.de
- http://www.inf.fu-berlin.de
- http://www.inf.fu-berlin.de/inst/ag-nbi/np/index.html
- http://www..focus.de
- ftp://ftp.inf.fu-berlin.de
- ftp://ftp.inf.fu-berlin.de/frei/README
- gropher://ftp.inf.fu-berlin.de
- http://www.ag-nbi.de/lehre/0708/V_NP/b5/index.html
-
Bitte erstellen Sie einen kleinen Webserver, der einen Dienst wie springhin.de
realisiert. Der Webserver stellt eine Webseite bereit, auf der man die Möglichkeit
zum Eintragen einer externen URL unter einem Kürzel (z.B. meine-url) hat (eben
genauso wie bei springhin.de).
Beim Aufruf von http://meineserveradresse/meine-url soll mit geeigneten
HTTP-Mechanismen bewirkt werden, dass der Browser die hinterlegte externe URL
lädt und anzeigt.
-
Bitte bauen Sie ein Zählerobjekt mit Hilfe eines kleinen Webservers und
Cookies. Der Zählerstand soll mittels Cookies beim Browser gehalten werden. Der
Webserver inkrementiert diesen Zähler bei Aufruf einer bestimmten Seite (und
zeigt den Zählerstand auf dieser Seite an).
|
|
Die Abgabe der Lösungen erfolgt auf zwei Wegen
Bitte schreiben Sie zur jeder Aufgabe eine Dokumentation, in der Sie
anhand von *relevanten* Codefragmenten Ihre Implementierung
erläutern.
Die Codefragmente sollten möglichst kurz gehalten werden und nur
der Orientierung für den Leser dienen; entscheidend sind Ihre
Erläuterungen, was diese Fragmente machen und wieso Sie sich
für diese Art der Implementierung entschieden haben. Erläutern
Sie auch, welche Art der Fehlerbehandlung Sie vorgenommen haben,
insbesondere bezüglich der Fehler, die erst bei verteilten Systemen
auftreten. Die Dokumentation ist in den Fächern der Tutoren
abzugeben.
Schicken Sie ein Archiv an Ihren Tutor, welches den vollständigen
Quellcode sowie ausführbare JAR-Dateien für die
jeweiligen Aufgabenteile
enthält. Der Betreff der E-Mail sollte wie folgt anfangen:
"[ALP5] Gruppe X ....".
|
|
Diskussionsaufgaben, die nicht
als Abgabe beantwortet werden sollen.Wir diskutieren sie in
der Übung,
Sie sollten sich im Rahmen dieser Aufgaben auf die Klausur
vorbereiten.
Block HTTP Interaktion
- Wie läuft Authentifizierung in HTTP ab, welche
Antwortcodes und Header sind dabei relevant?
- Mit welchen zwei HTTP Nutzungsarten überträgt man
Formulardaten zu einem Skript?
- Wie realisiert man das jeweils in Java?
- Wie ist ein Query-String aufgebaut?
- Wozu braucht man Zustand in HTTP-Interaktionen?
- Was ist eine Session?
- Wie kann meine eine eindeutige Session-ID erzeugen?
- Wie funktioniert das Cookie-Verfahren und welche
HTTP-Header werden dabei benutzt?
- Welche Verfahren zur Festlegung einer Session-ID gibt es
daneben noch und wie funktionieren sie?
Block HTML und Verarbeitung
- Was ist HTML und woraus besteht es?
- Nennen und beschreiben Sie drei in HTML definierte Entitäten
- Was sind Links und woraus bestehen sie?
- Wie sieht die Struktur von HTML-Seiten immer aus?
- Nennen und beschreiben Sie je zwei HTML-Elemente zur Markierung von
Schriftvarianten, Überschriften und Aufzählungen.
- Wie sind HTML-Formulare aufgebaut?
- Mit welchen HTML-Elementen werden Objekte, Bilder etc. in
HTML-Seiten eingebettet?
- Wie kann man auf einfache Weise in Java HTML Seiten
verarbeiten?
- Was passiert bei einem Callback-Parser, wenn er ein
HTML-Element erkannt hat?
- Was ist der Zusammenhang zwischen HTML und XML?
Block XML
- Warum wurde XML entwickelt und nicht einfach ein HTML6
definiert?
- Was ist der Unterschied zwischen PCDATA und CDATA in XML?
- Wie wird CDATA ausgezeichnet?
- Welche Fehler sind in diesem XML Dokument:
<?xml
standalone="yes">
<tel>0233/2938293<tel>
<tel>3003-22424</Tel>
<tel:fax>3003-2242</tel:fax>
<tel loc=home>030/99333993</tel>
|