feat(core): FILIUS' web server and web browser after Java, measured against Java
The servers share ServerAnwendung's frame (server.ts); the web server serves /webserver with virtual hosts, the browser loads a page and its images over one connection to port 80 (web.ts); HTTP in Java's text form (http.ts). WebRun records eleven stories on the new web-lan network, with the server's files; webJava.test.ts plays them card by card. A program's close is a request, as Java's schliessen. Not taken from Java: /../ serving any file of the host; an unreadable request closing the connection without a word. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -580,3 +580,40 @@ Gemessen (01.10.2026):
|
||||
dazwischen; so misst es `otherPort`.
|
||||
* Der Client sendet nur ein SYN (wie bei `TcpRun`, `closedPort`).
|
||||
|
||||
## Webserver und Browser (F3.2a)
|
||||
|
||||
`WebRun` installiert auf dem Netz von `web-lan` (Browser 192.168.0.20,
|
||||
DNS-Server .10, Webserver .30, ein Rechner ohne Webserver .31) Filius'
|
||||
Webserver, eingeschaltet auf Port 80, mit den Dateien, die Filius ihm gibt
|
||||
(`index.html` und ihr Bild), und eigenen (Seite mit Bildern, Text, Namen mit
|
||||
Leerzeichen und Umlaut, virtuelle Hosts in `/www.conf/vhosts`, eine Datei
|
||||
außerhalb von `/webserver`). Eine Adresse wird eingetippt wie ins Fenster und
|
||||
wie dort zur URL (`erzeugeURL`). Es schreibt die Frames jeder Karte, Javas
|
||||
Tabellen, die Fensterzeilen des Servers, was der Browser seinem Fenster
|
||||
meldet (Seite mit Status, Inhaltsart und Text, oder „update“ für ein Bild),
|
||||
und alle Dateien des Servers am Ende. Abläufe: `page`, `byName`,
|
||||
`notFound`, `vhost`, `noServer`, `unresolved`, `post`, `encoded`,
|
||||
`traversal`, `caseInsensitive`, `raw` (der einfache Client spricht mit dem
|
||||
Server).
|
||||
|
||||
Gemessen (01.10.2026):
|
||||
|
||||
* Der Browser verbindet sich immer mit Port 80; die Adresszeile nimmt keinen
|
||||
Port (Javas Muster für Hosts). Ein Schrägstrich am Ende fällt weg
|
||||
(`String.split`), `/vhost1/` ist dann ein Ordner und 404.
|
||||
* Je Seite eine Verbindung: Seite, dann jedes `<img>` nacheinander (das rohe
|
||||
`src`, auch `IMG SRC='…'` und ohne Anführungszeichen, relativ ohne
|
||||
führenden Schrägstrich), dann schließen. Ein Bild kommt als Javas Base64
|
||||
mit Zeilenumbruch nach 76 Zeichen.
|
||||
* Pfade gehen kodiert (`UriUtils.encodePath`: `%20`, `%C3%BC`), die Anfrage
|
||||
ohne Abfrage (`getPfad`), mit dem Host, wie er eingetippt wurde.
|
||||
* `GET /../geheim.txt` liefert `/geheim.txt`: Javas Dateisystem löst `..`
|
||||
auf, der Server prüft nicht, ob es unter `/webserver` bleibt.
|
||||
* Gesucht wird ohne Rücksicht auf Groß- und Kleinschreibung (Name und Host).
|
||||
* „HALLO“ oder „GET /“ ohne Version: `HTTPNachricht` wirft, der Thread des
|
||||
Servers schließt die Verbindung und meldet `null`.
|
||||
* Beim Wechsel der Seite geht die DNS-Anfrage der neuen Seite vor dem FIN der
|
||||
alten: `schliessen()` bittet den Socket-Thread nur.
|
||||
* Die Fehlerseiten macht der Browser selbst (im Messaufbau Javas Ersatztext,
|
||||
weil die Vorlage fehlt); der Vergleich sieht nur den Status.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user