WebServer
La classe WebServer
vous permet de démarrer et de contrôler un serveur web pour l'application principale (hôte) ainsi que pour chaque composant (voir la présentation de l'objet Web Server). Cette classe est disponible depuis le "class store" de 4D
.
Objet Web Server
Les objets serveur Web sont instanciés avec la commande WEB Server
.
Leurs propriétés et fonctions sont les suivantes :
Sommaire
WEB Server
Historique
Release | Modifications |
---|---|
18 R3 | Ajout |
19 | prise en charge de .sessionCookieSameSite |
WEB Server : 4D.WebServer
WEB Server( option : Integer ) : 4D.WebServer
Paramètres | Type | Description | |
---|---|---|---|
option | Integer | -> | Serveur Web à référencer (défaut si omis = Web server database ) |
Résultat | 4D.WebServer | <- | Objet Serveur Web |
La commande WEB Server
retourne l'objet Web server par défaut, ou l'objet Web server défini via le paramètre option.
Par défaut, si le paramètre option est omis, la commande renvoie une référence au serveur Web de la base de données, c'est-à-dire le serveur Web par défaut. Pour désigner le serveur Web à renvoyer, vous pouvez passer l'une des constantes suivantes dans le paramètre option :
Constante | Valeur | Commentaire |
---|---|---|
Web server database | 1 | Le serveur Web de la base courante (par défaut si omis) |
Web server host database | 2 | Le serveur Web de la base hôte du composant |
Web server receiving request | 3 | Le serveur Web ayant reçu la requête (serveur Web cible) |
L'objet Web server retourné contient les valeurs courantes des propriétés du serveur Web.
Exemple
L'objet Web server retourné contient les valeurs courantes des propriétés du serveur Web.
// Méthode d'un composant
var $hostWS : 4D.WebServer
$hostWS:=WEB Server(Web server host database)
If($hostWS.isRunning)
...
End if
WEB Server list
Historique
Release | Modifications |
---|---|
18 R3 | Ajout |
WEB Server list : Collection
Paramètres | Type | Description | |
---|---|---|---|
Résultat | Collection | <- | Collection des objets Web server disponibles |
La commande WEB Server list
renvoie une collection de tous les objets serveur Web disponibles dans l'application 4D.
Une application 4D peut contenir de un à plusieurs serveurs Web :
- un serveur Web pour la base de données hôte (serveur Web par défaut)
- un serveur Web pour chaque composant.
Tous les serveurs Web disponibles sont renvoyés par la commande WEB Server list
, qu'ils soient en cours d'exécution ou non.
L'objet serveur Web par défaut est automatiquement chargé par 4D au démarrage. En revanche, chaque serveur Web de composant que vous souhaitez utiliser doit être instancié à l'aide de la commande
WEB Server
.
Vous pouvez utiliser la propriété .name de l'objet Web server pour identifier le projet ou le composant auquel chaque objet Web server de la liste est rattaché.
Exemple
Nous voulons savoir combien de serveurs web en fonctionnement sont disponibles :
var $wSList : Collection
var $vRun : Integer
$wSList:=WEB Server list
$vRun:=$wSList.countValues(True;"isRunning")
ALERT(String($vRun)+" web server(s) running on "+String($wSList.length)+" available.")
.accessKeyDefined
.accessKeyDefined : Boolean
La propriété .accessKeyDefined contient vrai si une access key est définie dans les settings du serveur Web. Cette propriété est utilisée par le serveur web WebAdmin pour valider la configuration de sécurité de l'interface d'administration.
.certificateFolder
.certificateFolder : Text
Chemin du dossier contenant les fichiers des certificats. Chemin d'accès complet au format POSIX utilisant des filesystems. Lorsque cette propriété est utilisée dans le paramètre settings
de la fonction .start()
, elle peut être un objet Folder
.
.characterSet
.characterSet : Number
.characterSet : Text
Jeu de caractères que le serveur Web doit utiliser pour communiquer avec les navigateurs se connectant à l'application. La valeur par défaut dépend de la langue du système d'exploitation. Peut être un numéro MIBEnum ou un nom (chaîne), identifiants définis par l'IANA. Voici la liste des identifiants correspondant aux jeux de caractères pris en charge par le serveur Web de 4D :
- 4 = ISO-8859-1
- 12 = ISO-8859-9
- 13 = ISO-8859-10
- 17 = Shift-JIS
- 2024 = Windows-31J
- 2026 = Big5
- 38 = euc-kr
- 106 = UTF-8
- 2250 = Windows-1250
- 2251 = Windows-1251
- 2253 = Windows-1253
- 2255 = Windows-1255
- 2256 = Windows-1256
.cipherSuite
.cipherSuite : Text
Liste de chiffrement utilisée pour le protocole sécurisé. Définit la priorité des algorithmes de chiffrement implémentés par le serveur Web de 4D. Peut être une séquence de chaînes séparées par des deux-points (par exemple "ECDHE-RSA-AES128 -..."). Voir la page des chiffrements sur le site OpenSSL.
.CORSEnabled
.CORSEnabled : Boolean
Le statut du service CORS (Cross-origin resource sharing) pour le serveur Web. Pour des raisons de sécurité, les requêtes "cross-domain" sont interdites par défaut au niveau du navigateur. Lorsqu'il est activé (True), les appels XHR (par exemple les requêtes REST) à partir de pages Web hors du domaine peuvent être autorisés dans votre application (vous devez définir la liste des adresses autorisées dans la liste des domaines CORS, voir `COR Lorsqu'il est désactivé (False, par défaut), toutes les requêtes entre sites (cross site) envoyées avec CORS sont ignorées. Lorsqu'il est activé (True) et qu'un domaine ou une méthode non autorisé(e) envoie une requête entre sites, elle est rejetée avec une réponse d'erreur "403 - forbidden".
Par défaut : False (désactivé)
Pour plus d'informations sur CORS, veuillez consulter la page de partage de ressources cross-origin sur Wikipedia.
.CORSSettings
.CORSSettings : Collection
Contient la liste d'hôtes et de méthodes autorisées pour le service CORS (voir la propriété CORSEnabled
). Chaque objet doit contenir une propriété host et, optionnellement, une propriété methods :
-
host (texte, obligatoire) : nom de domaine ou adresse IP à partir duquel les pages externes sont autorisées à envoyer des requêtes de données au serveur via CORS. Plusieurs attributs de domaine peuvent être ajoutés pour créer une liste blanche. Si host n'est pas présent ou vide, l'objet est ignoré. Plusieurs syntaxes sont supportées :
- 192.168.5.17:8081
- 192.168.5.17
- 192.168.*
- 192.168.*:8081
- http://192.168.5.17:8081
- http://\*.myDomain.com
- http://myProject.myDomain.com
- *.myDomain.com
- myProject.myDomain.com
- *
-
methods (texte, facultatif) : méthode(s) HTTP acceptée(s) pour l'hôte CORS correspondant. Séparez chaque méthode par un ";" (ex : "post;get"). Si methods est vide, null ou non défini, toutes les méthodes sont activées.
.debugLog
.debugLog : Number
Statut du fichier de log des requêtes HTTP (HTTPDebugLog_nn.txt, stocké dans le dossier "Logs" de l'application -- nn est le numéro de fichier).
- 0 = désactivé
- 1 = activé sans les parties du corps (la taille du corps est fournie dans ce cas)
- 3 = activé avec les parties du corps en réponse uniquement
- 5 = activé avec des parties du corps sur requête uniquement
- 7 = activé avec des parties du corps en réponse et requête
.defaultHomepage
.defaultHomepage : Text
Nom de la page home par défaut ou "" pour ne pas envoyer de page home personnalisée.
.HSTSEnabled
.HSTSEnabled : Boolean
Statut du HTTP Strict Transport Security (HSTS). HSTS permet au serveur Web de déclarer que les navigateurs doivent interagir avec lui uniquement via des connexions HTTPS sécurisées. Les navigateurs enregistreront les informations HSTS la première fois qu'ils recevront une réponse du serveur Web, puis toutes les futures requêtes HTTP seront automatiquement transformées en requêtes HTTPS. La durée de stockage de ces informations par le navigateur est indiquée avec la propriété HSTSMaxAge
. HSTS nécessite l'activation de HTTPS sur le serveur. HTTP doit également être activé pour permettre des connexions client initiales.
.HSTSMaxAge
.HSTSMaxAge : Number
Durée maximum (en secondes) pendant laquelle HSTS est actif pour chaque nouvelle connexion cliente. Ces informations sont stockées côté client pendant la durée spécifiée.
Valeur par défaut : 63072000 (2 ans).
.HTTPCompressionLevel
.HTTPCompressionLevel : Number
Niveau de compression pour tous les échanges HTTP compressés du serveur (requêtes clientes ou réponses du serveur). Ce sélecteur vous permet d'optimiser les échanges en priorisant soit la vitesse d'exécution (moins de compression), soit la quantité de compression (moins de vitesse).
Valeurs possibles :
- 1 à 9 (où 1 correspond à la compression la plus rapide et 9 la plus élevée).
- -1 = définir un compromis entre la vitesse et le taux de compression.
Valeurs possibles :
.HTTPCompressionThreshold
.HTTPCompressionThreshold : Number
Limite de la taille des requêtes (en octets) au-dessous de laquelle les échanges ne doivent pas être compressés. Ce paramètre est utile pour éviter de perdre du temps machine en compressant les petits échanges.
Seuil de compression par défaut = 1024 octets
.HTTPEnabled
.HTTPEnabled : Boolean
Statut du protocole HTTP.
.HTTPPort
.HTTPPort : Number
Statut du protocole HTTPS.
Par défaut = 80
.HTTPTrace
.HTTPTrace : Boolean
L'activation de HTTP TRACE
. Pour des raisons de sécurité, le serveur Web rejette par défaut les requêtes HTTP TRACE
avec une erreur 405. Lorsque le HTTP TRACE
est activé, le serveur Web répond aux requêtes HTTP TRACE
avec la ligne, l'en-tête et le corps de la requête.
.HTTPSEnabled
.HTTPSEnabled : Boolean
Propriété en lecture seulement. Statut démarré du serveur Web.