Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Kommunikation und Netzwerk

k24:k24.6:start

24.6.0 Komponente gb.web

Die Web-Komponente gb.web ermöglicht es Ihnen, mit den folgenden Klassen eine Web-Anwendung auf der Basis eines CGI-Skripts zu entwickeln:

  • CGI,
  • WebPage,
  • Application,
  • Request,
  • Response,
  • Session,
  • URL,
  • URLQuery,
  • JSON und
  • JSONCollection.

Sie nutzen vorrangig

  • die Klasse Request, um eine HTTP-Anfrage zu verarbeiten,
  • erzeugen eine HTTP-Antwort mit der Klasse Response und
  • greifen auf Sitzungsdaten über die Klasse Session zu.

Um CGI-Web-Anwendungen mit der Komponente gb.web zu entwickeln und zu testen, benötigen Sie auf Ihrem System einen HTTP-Server, da Web-Anwendungen auf einem HTTP-Server ausgeführt werden!

  • Variante 1
    Sie nutzen den internen HTTP-Server (Komponente gb.httpd). Dieser HTTP-Server setzt auf den Mini-HTTP-Server thttpd auf, der von Jef Poskanzer stammt. So können Sie CGI-Web-Anwendungen auf der Basis der integrierten HTTP-Server-Komponente gb.httpd aus der IDE heraus sofort testen.
  • Variante 2
    Sie installieren und konfigurieren einen (lokalen) HTTP-Server. Im Kapitel 24.13 Exkurs sind die Installation, Konfiguration und der Test des Webservers Lighttpd ausführlich beschrieben.

24.6.0.1 Exkurs 1

Die Entwicklung von Webanwendungen mit den Komponenten gb.web oder auch gb.web.gui macht nur dann wirklich Sinn, wenn auf dem System

  • die Programmierumgebung Gambas installiert ist und
  • ein HTTP-Webserver wie Lighttpd oder Apache2 installiert und für CGI konfiguriert ist,

so dass Sie mit Gambas generierten Webseiten oder den Gambas-CGI-Scripten in Form von WebPages aktiv arbeiten können!

Das Gambas-Wiki und der Gambas-Bugtracker sind solche Web-Anwendungen, die in Gambas geschrieben sind und auf einem Server laufen, der die o.a. Bedingungen erfüllt. Den meisten Anwendern bleibt daher nur die Möglichkeit, die entwickelten Web-Anwendungen auf einem lokalen Server zu testen und zu betreiben.

Hinweise:

  • Nach der Variante 1 ist es möglich, in den Projekteinstellungen – die Komponente gb.web muss geladen sein – im Menü 'Debuggen' den Menü-Eintrag 'Eingebetteten HTTP-Server benutzen' zu aktivieren.
  • In die Projektdatei .project wird dann die Zeile 'UseHttpServer=1' automatisch eingefügt.
  • Die Umgebungsvariable GB_HTTPD_PORT steuert den Port, an den der Server gebunden wird. Damit ist eine Änderung des Ports möglich.
  • Als Standard-Port ist 8080 für den eingebetteten HTTP-Server voreingestellt.
  • Der Wert für die Umgebungsvariable GB_HTTPD_TIMEOUT bestimmt ein Timeout in Sekunden.

Ausgangssituation:

  • Eine WebPage (Projektname 'wpi') wurde entwickelt und in der IDE getestet → Menü-Eintrag 'Eingebetteten HTTP-Server benutzen' ist aktiviert.
  • Nach dem Programmstart wird die Webseite angezeigt.
  • Ausführbare Programm-Datei wpi.gambas wurde abgespeichert.

(a) In den Projekt-Ordner der WebPage wechseln:

hans@mint20:~/Schreibtisch$ cd wpi
hans@mint20:~/Schreibtisch/wpi$ GB_HTTPD_PORT=8080 gbx3

Ergebnis: Ausgabe des HTML-Quelltextes in der Konsole.

(b) In den Projekt-Ordner der WebPage wechseln und den eingebetteten Webserver aktivieren:

hans@mint20:~/Schreibtisch/wpi$ GB_HTTPD_PORT=8080 gbx3 --httpd  ' Alternative -H

Das ist die Ausgabe in der Konsole:

gb.httpd: bind 0.0.0.0 - Address already in use. 

Nach dem Aufruf im Browser des Autors mit http://localhost:8080 oder localhost:8080 oder 127.0.0.1:8080 oder zum Beispiel mit http://192.168.2.106:8080 sehen Sie die Anzeige der Webseite in voller epischer Breite. Den Abbruch des Interpreters erreichen Sie mit CTRL+C.

Nachdem die ausführbare Datei wpi.gambas sowie die benötigten Dateien css/style.css und images/favicon.png in das Webverzeichnis ~/public_html kopiert wurden, erfolgt die Anzeige der Webseite über den lokalen Webserver Lighttpd mit:

http://localhost/~hans/cgi-bin/wpi.gambas

BILD

Abbildung 24.6.0.1.1: Anzeige im Webbrowser (Lighttpd)

24.6.0.2 Exkurs 2

Sie können in Ihren Beispielen die drei Domains example.com oder example.org oder example.net als Muster-Domainnamen verwenden (→ RFC 2606). Nur diese drei reservierten und gegenwärtig von der Internet Assigned Numbers Authority (IANA) verwalteten Domains können Sie in Ihren Beispielen problemlos einsetzen. Details zu diesem Thema erfahren Sie auf der Website von Daniel Rehbein unter http://www.daniel-rehbein.de/rfc2606.html (→ Stand: 23.11.2020)

Download

Die Website verwendet zwei temporäre Session-Cookies. Diese technisch notwendigen Cookies werden gelöscht, wenn der Web-Browser geschlossen wird! Informationen zu Cookies erhalten Sie in der Datenschutzerklärung.
k24/k24.6/start.txt · Zuletzt geändert: 28.11.2020 von honsek

Seiten-Werkzeuge