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.

Each 4D web server, including the main application's web server, is exposed as a specific object of the 4D.WebServer class. Once instantiated, a web server object can be handled from the current application or from any component using a large number of properties and functions.

The legacy WEB commands of the 4D language are supported but cannot select the web server to which they apply (see below).

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

  • On Web Authentication and On Web Connection database method calls
  • 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

A web server class object contains the following functions:

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

A web server object contains various properties which configure the web server.

Ces propriétés sont définies :

  1. using the settings parameter of the .start() function (except for read-only properties, see below),
  2. if not used, using the WEB SET OPTION command (host applications only),
  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

The 4D Language contains several commands that can be used to control the web server. 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