Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
WEB GET HTTP HEADER
|
WEB GET HTTP HEADER ( entête | tabChamps {; tabValeurs} ) | ||||||||
Paramètre | Type | Description | ||||||
entête | tabChamps | Texte, Tableau texte |
![]() |
En-tête HTTP de la requête ou Champs de l’en-tête HTTP | |||||
tabValeurs | Tableau texte |
![]() |
Contenu des champs de l’en-tête HTTP | |||||
La commande WEB GET HTTP HEADER retourne, soit sous forme de chaîne, soit sous forme de deux tableaux, l’en-tête HTTP de la requête en cours de traitement.
Cette commande peut être appelée depuis toute méthode (Méthode base Sur authentification Web, QR SET DESTINATION, méthode appelée par "/4DACTION"...) exécutée dans un process Web.
Lorsque vous utilisez cette syntaxe, le résultat retourné dans la variable entête est du type suivant :
"GET /page.html HTTP\1.0"+Char(13)+Char(10)+"User-Agent: browser"+Char(13)+Char(10)+"Cookie: C=HELLO"
Chaque champ d’en-tête est séparé par une séquence CR+LF (Retour chariot+Retour à la ligne), sous Windows et Mac OS.
tabChamps{1} = "X-METHOD" | tabValeurs{1} = "GET" * |
tabChamps{2} = "X-URL" | tabValeurs{2} = "/page.html" * |
tabChamps{3} = "X-VERSION" | tabValeurs{3} = "HTTP/1.0" * |
tabChamps{4} = "User-Agent" | tabValeurs{4} = "browser" |
tabChamps{5} = "Cookie" | tabValeurs{5} = "C=HELLO" |
* Ces trois premiers éléments ne correspondent pas à des champs HTTP. Ils constituent la première ligne de la requête.
Conformément à la norme HTTP, les noms des champs sont toujours libellés en anglais.
A titre indicatif, voici une liste non exhaustive des champs HTTP pouvant être présents dans une requête :
` Méthode projet GetHTTPField
` GetHTTPField ( Texte ) -> Texte
` GetHTTPField ( Nom en-tête HTTP ) -> Contenu en-tête HTTP
C_TEXT($0;$1)
C_LONGINT($vlElem)
ARRAY TEXT($noms;0)
ARRAY TEXT($valeurs;0)
$0:=""
WEB GET HTTP HEADER($noms;$valeurs)
$vlElem:=Find in array($noms;$1)
If($vlElem>0)
$0:=$valeurs{$vlElem}
End if
` Contenu de l’en-tête Cookie
$cookie:=GetHTTPField("Cookie")
$langue:=GetHTTPField("Accept-Language")
Case of
:($langue="@fr@") `Français (cf. liste ISO 639)
WEB SEND FILE("index_fr.html")
:($langue="@es@") `Espagnol (cf. liste ISO 639)
WEB SEND FILE("index_es.html")
Else
WEB SEND FILE("index.html")
End case
Note : Les navigateurs Web permettent de définir plusieurs langues par défaut. Elles sont listées dans le champ “Accept-Language”, séparées par des ";". Leur priorité est définie par leur position au sein de la chaîne ; il peut donc être utile de tester la position des langues dans la chaîne.
$host:=GetHTTPField("Host")
Case of
:($host="www.site1.com")
WEB SEND FILE("home_site1.com")
:($host="www.site2.com")
WEB SEND FILE("home_site2.com")
Else
WEB SEND FILE("home_site.com")
End case
Produit : 4D
Thème : Serveur Web
Numéro :
697
Créé : 4D v6.7
Renommé : 4D v13 (GET HTTP HEADER)
4D - Langage ( 4D v20 R7)