Thema / Sitzung |
Materialien |
Webserver programmieren |
Meinen primitiven Java-Webserver finden Sie in
der Datei PrimitiveWebServer.java.
|
TCP, Client, Server |
-
ServerSniffer.java, der
die Kommunikation zwischen einem Server und einem Client belauscht.
-
MyTelnet.java, falls bei Ihnen telnet oder nc nicht
laufen sollte.
-
AltCapsServer.java, ein Server, der
Verbindungen
annimmt und dann den Text in AlTcApS umwandelt.
-
CharToAscii.java, ein Server, der den
geschickten Text
Character für Character in den numerischen ASCII-Code umwandelt.
-
MessageServer.java, ein einfacher
Kurznachrichten-Server zum Verschicken anonymer Nachrichten. Warnung: ich habe mir überhaupt eine
Mühe gemacht, ihn sicher / threadsafe / benutzerfreundlich zu machen. Passwörter werden im Klartext
angezeigt und
übertragen etc. Nur für Demo-Zwecke, wie man in Java TCP-Verbindungen aufbaut und verwendet.
-
MySslTelnet.java, das gleiche wie
MyTelnet.java, falls Sie mit HTTP-Requests rumspielen wollen mit einem Server, der nur HTTPS erlaubt.
|
HTTP: GET-Requests und Responses. Beispiele |
-
Bei den Beispielen mit
web1.hszg.de müssen Sie aufpassen,
dass Sie den GET-Request mit zwei leeren Zeilen abschließen.
Eine leere Zeile mit einem Leerzeichen (SPACE) wird
den Browser zu einer Fehlermeldung veranlassen.
java MyTelnet web1.hszg.de 80
GET /scheder-lehre/WE-I/index.html HTTP/1.1
host: web1.hszg.de
Sollte dem Server ein "Moved permanently" oder so entlocken.
Der Grund ist, dass web1.hszg.de auf HTTPS besteht.
-
java MySslTelnet web1.hszg.de 443
GET /scheder-lehre/WE-I/index.html HTTP/1.1
host: web1.hszg.de
Dies sollte dem Server nun die tatsächliche Seite entlocken.
Beachten Sie, dass 443 der Standard-Port für HTTPS ist.
-
Beispielcode, in dem wir per Hand Webserver spielen.
java OnePersonServer 8080
GET /example-2.html HTTP/1.1
Host: localhost:8080
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Safari/605.1.15
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: keep-alive
HTTP/1.1 200 OK
content-type: text/html; charset=UTF-8
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
Dies ist ein HTTP-Response, den wir <em>per Hand</em> auf dem Terminal
in unseren <code>OnePersonServer</code> eingegeben haben.
</body>
</html>
-
01-firstname-lastname.zip
-
02-template-for-list.zip
|