Aller au contenu principal
Version: v20 R4 BETA

Administration

4D offre plusieurs outils intégrés permettant de démarrer, arrêter ou administrer le serveur web intégré.

Démarrer le Serveur Web 4D

Une licence 4D Web Application est requise pour pouvoir lancer le serveur web de 4D ou 4D Server. Pour plus d'informations, consultez le site web de 4D.

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

Il y a plusieurs manières de démarrer le serveur Web principal :

  • via un bouton/une commande de menu :

    • 4D: Exécution > démarrer le serveur Web
    • 4D Server : depuis la page du serveur HTTP, cliquez sur Démarrer le serveur HTTP
  • automatiquement à l'ouverture de l'application 4D. en cochant l'option Lancer le serveur Web au démarrage dans Propriétés > Web > Configuration

  • Par programmation, en appelant la fonction webServer.start() ou la commande WEB START SERVER.

Le serveur Web de n'importe quel composant peut être lancé en appelant la fonction webServer.start() sur l'objet serveur Web du composant.

Il n'est pas nécessaire de relancer l'application 4D pour démarrer ou arrêter le serveur Web.

Arrêter le Serveur Web 4D

Il y a plusieurs manières d'arrêter le serveur Web principal :

  • Via le menu 4D, Exécution > Arrêter le serveur Web, ou via le bouton Arrêter le serveur HTTP de 4D Server (les deux items affichent Démarrer... quand le serveur n'est pas encore démarré).

  • Par programmation, en appelant la fonction webServer.stop() ou la commande WEB STOP SERVER.

Le serveur Web de n'importe quel composant peut être arrêté en appelant la fonction ``webServer.stop() sur l'objet serveur Web du composant.

Tester le Serveur Web 4D

La commande Tester le serveur Web peut être utilisé pour s'assurer que le serveur web intégré fonctionne correctement (4D uniquement). Cette commande est accessible depuis le menu Run lorsque le serveur web est lancé :

Lorsque vous sélectionnez cette commande, la page d'accueil du site Web publié par l'application 4D s'affiche dans une fenêtre de votre navigateur par défaut :

Cette commande vous permet de vérifier que le serveur web, l'affichage de la page d'accueil, etc. fonctionnent correctement. La page est appelée en utilisant l'URL localhost, qui est le raccourci standard désignant l'adresse IP de la machine sur laquelle le navigateur web est exécuté. Cette commande prend en compte le numéro du port de publication TCP spécifié dans les paramètres.

Vider le cache

À tout moment, vous pouvez vider le cache des pages et des images qu'il contient (si, par exemple, vous avez modifié une page statique et que vous souhaitez la recharger dans le cache).

Pour ce faire, vous pouvez :

  • 4D: click on the Clear Cache button in the Web/Options (I) page of the Settings dialog box.
  • 4D Server: click on the Clear Cache button in the HTTP page of the 4D Server Administration window.

Le cache est alors immédiatement effacé.

Vous pouvez aussi utiliser l'url /4DCACHECLEAR.

Explorateur d'exécution

La page Watch (rubrique Web) de l'Explorateur d'exécution affiche les informations du serveur Web, notamment :

  • Occupation du cache Web : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0.

  • Temps d’activité du serveur Web : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif.

  • Nombre de requêtes http : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif.

URLs d'administration

Les URL d'administration Web vous permettent de contrôler le site web publié sur votre serveur. 4D Web Server accepte quatre URLs spécifiques : /4DSTATS, /4DHTMLSTATS, /4DCACHECLEAR et /4DWEBTEST.

/4DSTATS, /4DHTMLSTATS et /4DCACHECLEAR ne sont disponibles que pour le concepteur et l'administrateur de la base de données. Si le système de mot de passe 4D n'a pas été activé, ces URL sont disponibles pour tous les utilisateurs. /4DWEBTEST est toujours disponible.

/4DSTATS

L'URL /4DSTATS renvoie plusieurs éléments d'information dans un tableau HTML (affichable dans un navigateur) :

ÉlémentDescription
Cache Current SizeTaille actuelle du cache du serveur web (en octets)
Cache Max SizeTaille maximale du cache (en octets)
Cached Object Max SizeTaille maximale de chaque objet dans le cache (en octets)
Cache UsePourcentage de cache utilisé
Cached ObjectsNombre d'objects trouvés dans le cache, images incluses

Ces informations peuvent vous permettre de vérifier le fonctionnement de votre serveur et éventuellement d'adapter les paramètres correspondants.

La commande WEB LIRE STATISTIQUES permet également d'obtenir des informations sur la façon dont le cache est utilisé pour les pages statiques.

/4DHTMLSTATS

L'URL /4DHTMLSTATS retourne les mêmes informations que l'URL /4DSTATS, également sous forme de tableau. La différence est que le champ Cached objects ne compte que les pages HTML (les fichiers d'images ne sont pas pris en compte). De plus, cette URL retourne le champ Filtered Objects.

ÉlémentDescription
Cache Current SizeTaille actuelle du cache du serveur web (en octets)
Cache Max SizeTaille maximale du cache (en octets)
Cached Object Max SizeTaille maximale de chaque objet dans le cache (en octets)
Cache UsePourcentage de cache utilisé
Cached ObjectsNombre d'objects trouvés dans le cache, sans les images
Filtered ObjectsNombre d'objets dans le cache non pris en compte par l'URL, notamment les images

/4DCACHECLEAR

L'URL /4DCACHECLEAR retire immédiatement les pages statiques et les images du cache. Il vous permet donc de "forcer" la mise à jour des pages qui ont été modifiées.

/4DWEBTEST

L'URL /4DWEBTEST permet de vérifier l'état du serveur web. Lorsque cette URL est appelée, 4D renvoie un fichier texte avec les champs HTTP suivants remplis :

Champ HTTPDescriptionExemple
Datedate courante au format RFC 822 formatMon, 7 Dec 2020 13:12:50 GMT
Server4D/numéro de version4D/18.5.0 (Build 18R5.257368)
User-Agentnom et version @ adresse IP du clientMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 @ 127.0.0.1

Logs

4D vous permet de générer deux historiques de requêtes Web :

  • un historique de débogage, utile dans la phase de développement du serveur web (HTTPDebugLog.txt),
  • un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (logweb.txt).

Les deux fichiers journaux sont automatiquement créés dans le dossier Logs du projet d'application.

HTTPDebugLog.txt

Le fichier de débogage peut être activé via l'objet web server ou la commande WEB FIXER OPTION

Ce fichier journal enregistre chaque requête HTTP et chaque réponse en mode brut (raw). Les requêtes sont enregistrées dans leur totalité (en-têtes compris). Les parties body peuvent également être enregistrées.

Les champs suivants sont enregistrés pour Requête et Réponse :

Noms des champsDescription
SocketIDID du socket utilisé pour la communication
PeerIPAdresse IPv4 de l'hôte (client)
PeerPortPort utilisé par l'hôte (client)
TimeStampHorodatage en millisecondes (depuis le démarrage du système)
ConnectionIDConnexion UUID (UUID du VTCPSocket utilisé pour la communication)
SequenceNumberNuméro d'opération séquentiel et unique dans la session de log

logweb.txt

Le fichier d'enregistrements d'historique Web peut être activé via l'objet web server, la commande WEB FIXER OPTION ou la page Web > Log des Propriétés. Vous devez sélectionner un format d'historique.

CLF/DLF

Each line of the file represents a request, such as: host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length Each field is separated by a space and each line ends by the CR/LF sequence (character 13, character 10).

Le format DLF (Distilled Log Format) est similaire au format CLF (Common Log format) et utilise exactement la même structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. Voici la description des formats CLF/DLF (non personnalisables) :

Noms des champsDescription
hostAdresse IP du client (ex. 192.100.100.10)
rfc931information non générée par 4D, c'est toujours - (le signe moins)
userle nom d'utilisateur tel qu'il est authentifié, ou bien - (le signe moins). Si le nom de l’utilisateur contient des espaces, ils sont remplacés par des _ (tiret bas).
DD/MMM/YYYY:HH:MM:SSDD : jour, MMM : abréviation de 3 lettres pour le nom du mois (Jan, Feb,...), YYYY : année, HH : heure, MM : minutes, SS : secondes. La date et heure sont locales au serveur.
requestrequête envoyée par le client (ex. GET /index.htm HTTP/1.0)
stateréponse donnée par le serveur
lengthtaille des données retournées (HTTP header exclu) ou 0
RefererDLF uniquement. Contient l'URL de la page qui pointe vers le document de la requête.
User-agentDLF uniquement - Contient le nom et la version du navigateur ou du logiciel du client à l'origine de la demande

ELW/WLF

Le format ELF (Extended Log Format) est très répandu dans le monde des navigateurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier.

Le format WLF (WebStar Log format) a été développé spécifiquement pour le serveur 4D WebSTAR.

Configurer les champs

Lorsque vous choisissez le format ELF ou WLF, la zone "Web Log Token Selection" affiche les champs disponibles pour le format choisi. Vous devrez sélectionner chaque champ à inclure dans le journal. Pour ce faire, cochez les champs souhaités.

Le même champ ne peut pas être sélectionné deux fois.

Le tableau suivant répertorie les champs disponibles pour chaque format (par ordre alphabétique) et décrit leur contenu :

ChampELFWLFValeur
BYTES_RECEIVEDXNombre d'octets reçus par le serveur
BYTES_SENTXXNombre d’octets envoyés par le serveur au client
C_DNSXXAdresse IP du DNS (ELF : champ identique au champ C_IP)
C_IPXXAdresse IP du client (par exemple 192.100.100.10)
CONNECTION_IDXNuméro unique de la connexion
CS(COOKIE)XXInformations sur les cookies contenus dans la requête HTTP
CS(HOST)XXChamp Host de la requête HTTP
CS(REFERER)XXURL de la page pointant vers le document demandé
CS(USER_AGENT)XXInformations sur le logiciel et le système d’exploitation du client
CS_SIPXXAdresse IP du serveur
CS_URIXXURI sur lequel la requête est effectuée
CS_URI_QUERYXXParamètres d’interrogation de la requête
CS_URI_STEMXXPartie de la requête sans les paramètres d’interrogation
DATEXXDD: jour, MMM: abréviation de 3 lettres pour le mois (Jan, Feb,...), YYYY: année
METHODXXMéthode HTTP utilisée pour la requête adressée au serveur
PATH_ARGSXCGI parameters: string located after the “$” character
STATUSXXRéponse fournie par le serveur
TIMEXXHH: heure, MM: minutes, SS: secondes
TRANSFER_TIMEXXDélai ayant été nécessaire au serveur pour générer la réponse
USERXXNom d’utilisateur s’il s’est authentifié, sinon - (signe moins). Si le nom d’utilisateur contient des espaces, ils sont remplacés par des _ (traits de soulignement)
Variable URLXURL demandé par le client

Les dates et heures sont données au format GMT

Fréquence de backup

Comme la taille d'un logweb.txt fichier évoluer considérablement, il est possible de mettre en place un mécanisme d'archivage automatique. Le déclenchement d'une backup peut être basé sur une certaine période de temps (exprimée en heures, jours, semaine ou mois), ou sur la taille du fichier ; lorsque le délai fixé (ou la taille du fichier) est atteinte, 4D ferme et archive automatiquement le fichier d'historique en cours et en crée un nouveau.

Lorsque la sauvegarde du fichier d'historique web est déclenchée, le fichier d'historique est archivé dans un dossier nommé "Archives Logweb", qui est créé au même niveau que le fichier logweb.txt.

Le fichier archivé est renommé sur le modèle suivant : "DYYYY_MM_DD_Thh_mm_ss.txt". Par exemple, pour un fichier archivé le 4 septembre 2020 à 15h50 et 7 secondes : “D2020_09_04_T15_50_07.txt.”

Paramètres de backup

Les paramètres de sauvegarde automatique du logweb.txt sont définis sur la page Web > Journal (périodicité) des Paramètres :

Vous devez d'abord choisir la fréquence (jours, semaines, etc.) ou le critère de la taille limite du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis du backup si nécessaire.

  • Pas de sauvegarde du journal : La fonction de sauvegarde programmée est désactivée.

  • Toutes les X heure(s) : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24.

    • à partir de: Permet de définir l'heure du déclenchement du premier backup.
  • Tous les N jour(s) à N : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée.

  • Tous les N jour(s) à N : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired.

  • Tous les N mois, Ne jour à N : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement.

  • Tous les N Mo : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Un backup se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo.