Zur Lehrveranstaltung www und multimedia im Sommersemester 2007.
"World Wide Web": Browser als Client, Webserver als Server. Kommunizieren über das Protokoll HTTP. Adressierung der Dokumente über URLs. Aufbau einer URL: Protokoll :// [ user : passwort @ ] domainname oder ip-adresse [ : Port ] irgendwas [ ? parameter ] [ # anker ]
Achtung: Der Teil der URL der vom Server interpretiert wird ist (da meist UNIX-Server) meist case-sensitive: gross- / kleinschreibung wichtig.
Achtung bei Verwendung von Sonderzeichen in Dateinamen: in URLs haben die Zeichen ? und & und = schon eine Bedeutung, müssen also falls Sie im Dateinamen vorkommen escaped werden. in der Schreibweise %CA
https ist http über SSL.
Erfunden am CERN von Tim Berners-Lee. Standardisierung über W3C (World Wide Web Consortium).
Am Web-Server: CGI (z.B. Perl, Python oder beliebige andere sprachen)
Am Client: Flash, Java Applets
wie lautetn die HTMl-Tags für: überschrift, link, bild, tabelle.
wie wird CSS in html eingebunden.
Wie kann man Grafik einbinden? <img src="URL" alt="alternativtext" />
Stärken der verschiedenen Format:
Nicht vergessen: es gilt das Urheberrecht (copyright, quellenangaben) auch wenn es technisch sehr einfach ist grafiken zu klauen!
Dateigröße von Bildern beachten.
Auflösung
Java ist nicht Javascript. Viele Unterschiede, z.B. Javascript wenig Datentypen, javascript ist objektorientiert, kenn aber keine Klassen.
Einbindung in HTML mit
<script> ... </script> und in verschiedenen Tags mit Attributen die mit on beginne: <body onLoad="...">
Was kann Javascript? Animationen, Formulare kontrollieren, ...
So funktioniert ein Link: <a href="url">urltext und/oder bild</a>
Ordnerstruktur ist nicht gleich Navigations-Struktur!
Baum, Lineare Struktur (Sequenz), Netz (jeder mit jedem)
Vermeiden: Seiten ohne Rücklink, Seiten ohne Navigationssystem.
Was ist ein Breadcrumb-Menu?
SSI abekürzt. Ein (altes)Feature des Apache Webserver. Schreibweise: <!--#include file="navigation.html" -->
Der Webserver liest die Seite bevor er sie ausliefert, und ersetzt die SSI-anweisungen.
Am Client merkt man nicht, dass SSI am server verwendet wurde.
Wenn es nicht funktioniert erscheint die Meldung [could not process directive]
<!--#exec cmd="ls -la" -->
<!--#echo env="PATH" -->
Abkürzung für Asynchronous Javascript And XML. Javascript im Browser.
Inhalt einer Webseite verändern ohne die Seite ganz neu zu laden. Über asynchronen HTTP-Request werden Daten vom Server geholt, dazu braucht man das XMLHTTPRequestObject.
Beispiel: Textfeld mit Autocomplete ... beschreibe Ablauf.
AJAX-Anwendungen muss man umfangreich Testen, weil Browser sehr unterschiedlich mit Javascript umgehen.
Nachteil: "Zurück"-Button im Browser funktioniert nicht mehr richtig.
Ein Oberbegriff für eine reiche von interaktiven Diensten des WEb, z.B. Wikis, Weblog, etc... Wichtige Eigenschaften: LeserInnen leisten Beitrag. Beispiel: Wikipedia, YouTube, google video,
Begriff von Tim O'Reilly.
Datenübertragung mit Methode GET:
Daten in der URL: http//test.com/programm.cgi?a=10&b=20
Datenübertragung mit POST
Keine Daten in der URL http//test.com/programm.cgi, sondern im HTTP-Body.
Vorteil POST. grössere Datenmengen.
Formular das die Anfrage programm.cgi?a=10&b=20 generiert hat?
<form action="programm.cgi" method="get">
<input name="a" />
<input name="b" />
<input type="submit" />
</form>
Flash kann HTTP-Request an einen Webserver schicken, mit GET oder POST-Parametern.
Server soll als antwort senden:
1) entweder: in der schreibweise in der auch get-parameter übertragen werden, also
a=20&b=hallo
2) oder: als XML
was: eine reine text-datei, die der server an den webbrowser schickt, und der webbrowser speichert
wo: gespeichert im hauptspeicher oder (bei permanenten cookies) auf der platte
wann: server schickt, client speichert und schickt bei jeder weitere anfrage mit
warum: authentifizierung speichern, warenkorb: welche artikel ich ausgesucht habe werden im cookie gespeichert.
wie: mit cgi-programm vom server aus, oder von javascript aus.
achtung: keine passwörter drin speichern, könnte abgehört werden.
http ist abhörbar, das inkludiert auch passwörter.
https ist http on top of ssl.
javascript: nicht zur authentisierung geeignet, da der client entscheidet ob javascript ausgeführt wird, und der gesamte code am client lesbar ist.
(alternatvie: .htaccess und authentisierung über HTTP-Protokoll)
cross site scripting = Wenn LeserInnen Inhalte in eine Webseite schreiben können: falls die auch <script> reinschreiben können, könne sie böse dinge tun wie z.b. eine andere webseite laden.
SQL-Injection: wichtig wenn man cgi-programme schreibt: aller user-input ist verdächtig. muss genau geprüft werden, bevor man damit z.B. sql-anfragen konstruiert. Beispiel: user-input soll eine id sein. das programm baut daraus "DELETE FROM table WHERE id=.... Böser User gibt ein '3 OR 1=1', das ergiebt in summe "DELETE FROM table WHERE id=3 OR 1=1" --> löscht gesamte Tabelle.