Aller au contenu principal
Version: 20 R5 BETA

Objet Web Server

Un projet 4D peut démarrer et surveiller un serveur Web pour l'application principale (hôte) ainsi que chaque composant hébergé.

Par exemple, si vous avez installé deux composants dans votre application principale, vous pouvez démarrer et contrôler jusqu'à trois serveurs Web indépendants à partir de votre application :

  • un serveur web pour l'application hôte,
  • un serveur web pour le composant n°1,
  • un serveur web pour le composant n°2.

En dehors de la mémoire, il n'y a pas de limite au nombre de composants et donc, de serveurs Web, pouvant être rattachés à un seul projet d'application 4D.

Chaque serveur web 4D, y compris le serveur web de l'application principale, est exposé comme un objet spécifique de la classe 4D.WebServer. Une fois instancié, un objet serveur Web peut être géré depuis l'application courante ou depuis n'importe quel composant à l'aide d'un grand nombre de propriétés et de fonctions.

Les commandes WEB héritées du langage 4D sont prises en charge mais ne peuvent pas sélectionner le serveur Web auquel elles s'appliquent (voir ci-dessous).

Chaque serveur web (application hôte ou composant) peut être utilisé dans son propre contexte, notamment :

  • les appels vers la méthode base On Web Authentication et On Web Connection
  • le traitement des balises 4D et les appels de méthodes,
  • sessions web et gestion du protocole TLS.

Cela vous permet de développer des composants indépendants et des fonctionnalités qui accompagnent leurs propres interfaces Web.

Instancier un objet serveur web

L'objet serveur Web de l'application hôte (serveur Web par défaut) est automatiquement chargé par 4D au démarrage. Ainsi, si vous écrivez dans un projet nouvellement créé :

$nbSrv:=WEB Server list.length   
//la valeur de $nbSrv est 1

To instantiate a web server object, call the WEB Server command:

    //create an object variable of the 4D.WebServer class
var webServer : 4D.WebServer
//call the web server from the current context
webServer:=WEB Server

//equivalent to
webServer:=WEB Server(Web server database)

Si l'application utilise des composants et que vous souhaitez appeler :

  • le serveur Web de l'application hôte à partir d'un composant ou
  • le serveur qui a reçu la requête (quel que soit le serveur)

vous pouvez également utiliser :

var webServer : 4D.WebServer 
//call the host web server from a component
webServer:=WEB Server(Web server host database)
//call the target web server
webServer:=WEB Server(Web server receiving request)

Fonctions du serveur web

Un objet de classe Web server contient les fonctions suivantes :

FonctionsParamètresValeur retournéeDescription
start()settings (objet)status (object)Démarre le serveur web
stop()-*Stoppe le serveur web

To start and stop a web server, just call the start() and stop() functions of the web server object:

var $status : Object
//to start a web server with default settings
$status:=webServer.start()
//to start the web server with custom settings
//$settings object contains web server properties
webServer.start($settings)

//to stop the web server
$status:=webServer.stop()

Propriétés du serveur web

Un objet serveur Web contient diverses propriétés qui configurent le serveur Web.

Ces propriétés sont définies :

  1. using the settings parameter of the .start() function (except for read-only properties, see below),
  2. si elles ne sont pas utilisées, à l'aide de la commande WEB SET OPTION (applications hôtes uniquement),
  3. si elles ne sont pas utilisées, dans les paramètres de l'application hôte ou du composant.
  • Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web.
  • If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the settings parameter of the .start() function.

isRunning, name, openSSLVersion, and perfectForwardSecrecy are read-only properties that cannot be predefined in the settings object parameter for the start() function.

Portée des commandes 4D Web

Le langage 4D contient plusieurs commandes permettant de contrôler le serveur Web. Cependant, ces commandes sont destinées à fonctionner avec un seul serveur Web (par défaut). Lorsque vous utilisez ces commandes dans le contexte d'objets serveur Web, assurez-vous que leur portée est appropriée.

CommandPortée
SET DATABASE PARAMETERApplication hôte du serveur web
WEB CLOSE SESSIONServeur Web ayant reçu la requête
WEB GET BODY PARTServeur Web ayant reçu la requête
WEB Get body part countServeur Web ayant reçu la requête
WEB Get Current Session IDServeur Web ayant reçu la requête
WEB GET HTTP BODYServeur Web ayant reçu la requête
WEB GET HTTP HEADERServeur Web ayant reçu la requête
WEB GET OPTIONApplication hôte du serveur web
WEB Get server infoApplication hôte du serveur web
WEB GET SESSION EXPIRATIONServeur Web ayant reçu la requête
WEB Get session process countServeur Web ayant reçu la requête
WEB GET STATISTICSApplication hôte du serveur web
WEB GET VARIABLESServeur Web ayant reçu la requête
WEB Is secured connectionServeur Web ayant reçu la requête
WEB Is server runningApplication hôte du serveur web
WEB SEND BLOBServeur Web ayant reçu la requête
WEB SEND FILEServeur Web ayant reçu la requête
WEB SEND HTTP REDIRECTServeur Web ayant reçu la requête
WEB SEND RAW DATAServeur Web ayant reçu la requête
WEB SEND TEXTServeur Web ayant reçu la requête
WEB SET HOME PAGEApplication hôte du serveur web
WEB SET HTTP HEADERServeur Web ayant reçu la requête
WEB SET OPTIONApplication hôte du serveur web
WEB SET ROOT FOLDERApplication hôte du serveur web
WEB START SERVERApplication hôte du serveur web
WEB STOP SERVERApplication hôte du serveur web
WEB Validate digestServeur Web ayant reçu la requête