Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v20.6
WEB LIRE ENTETE HTTP

WEB LIRE ENTETE HTTP 


 

WEB LIRE ENTETE HTTP ( entête | tabChamps {; tabValeurs} ) 
Paramètre Type   Description
entête | tabChamps  Texte, Tableau texte in En-tête HTTP de la requête ou Champs de l’en-tête HTTP
tabValeurs  Tableau texte in Contenu des champs de l’en-tête HTTP

La commande WEB LIRE ENTETE HTTP 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 FIXER DESTINATION, méthode appelée par "/4DACTION"...) exécutée dans un process Web.

  • Première syntaxe : WEB LIRE ENTETE HTTP (entête)

Lorsque vous utilisez cette syntaxe, le résultat retourné dans la variable entête est du type suivant :

 "GET /page.html HTTP\1.0"+Caractere(13)+Caractere(10)+"User-Agent: browser"+Caractere(13)+Caractere(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.

  • Seconde syntaxe : WEB LIRE ENTETE HTTP (tabChamps; tabValeurs)
Lorsque vous utilisez cette syntaxe, les résultats retournés dans les tableaux tabChamps et tabValeurs sont du type suivant :
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 :

  • Accept : ce que le navigateur est susceptible d’accepter comme contenu.
  • Accept-Language : la ou les langue(s) acceptée(s) par le navigateur (pour information). Permet de choisir une page d’accueil en fonction de la langue préférée du navigateur.
  • Cookie : liste des cookies.
  • From : adresse e-mail de l’utilisateur du navigateur.
  • Host : nom ou adresse du serveur (par exemple, dans le cas de l’URL http://monserveurweb/mapage.html, Host prend la valeur "monserveurweb"). Permet de gérer les cas où plusieurs noms pointent vers la même adresse IP (virtual hosting).
  • Referer : provenance de la requête (par exemple http://monserveurweb/mapage1.html), c’est-à-dire la page que l’utilisateur affiche s’il clique sur le bouton Précédent de son navigateur.
  • User-Agent : nom et version du navigateur ou du proxy.

Exemple  

  • Cette méthode permet de récupérer le contenu de tout champ d’en-tête de requête HTTP :
  ` Méthode projet GetHTTPField
  ` GetHTTPField ( Texte ) -> Texte
  ` GetHTTPField ( Nom en-tête HTTP ) -> Contenu en-tête HTTP
 C_TEXTE($0;$1)
 C_ENTIER LONG($vlElem)
 TABLEAU TEXTE($noms;0)
 TABLEAU TEXTE($valeurs;0)
 $0:=""
 WEB LIRE ENTETE HTTP($noms;$valeurs)
 $vlElem:=Chercher dans tableau($noms;$1)
 Si($vlElem>0)
    $0:=$valeurs{$vlElem}
 Fin de si
  • Une fois que cette méthode projet est écrite, vous pouvez l’appeler ainsi :
  ` Contenu de l’en-tête Cookie
 $cookie:=GetHTTPField("Cookie")
  • Vous pouvez également envoyer des pages différentes en fonction de la langue du navigateur (par exemple dans la QR FIXER DESTINATION) :
 $langue:=GetHTTPField("Accept-Language")
 Au cas ou
    :($langue="@fr@") `Français (cf. liste ISO 639)
       WEB ENVOYER FICHIER("index_fr.html")
    :($langue="@es@") `Espagnol (cf. liste ISO 639)
       WEB ENVOYER FICHIER("index_es.html")
    Sinon
       WEB ENVOYER FICHIER("index.html")
 Fin de cas

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.

  • Exemple de gestion des hôtes virtuels (par exemple dans la QR FIXER DESTINATION). Les trois noms “home_site.com”, “home_site1.com” et “home_site2.com” pointent vers la même adresse IP, par exemple 192.1.2.3.
 $host:=GetHTTPField("Host")
 Au cas ou
    :($host="www.site1.com")
       WEB ENVOYER FICHIER("home_site1.com")
    :($host="www.site2.com")
       WEB ENVOYER FICHIER("home_site2.com")
    Sinon
       WEB ENVOYER FICHIER("home_site.com")
 Fin de cas



Voir aussi  

WEB FIXER ENTETE HTTP
WEB LIRE CORPS HTTP

 
PROPRIÉTÉS 

Produit : 4D
Thème : Serveur Web
Numéro : 697
Nom intl. : WEB GET HTTP HEADER

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v6.7
Renommé : 4D v13 (LIRE ENTETE HTTP)

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v20)
4D - Langage ( 4D v20.1)
4D - Langage ( 4D v20.2)
4D - Langage ( 4D v20.3)
4D - Langage ( 4D v20.4)
4D - Langage ( 4D v20.5)
4D - Langage ( 4D v20.6)