GET HTTP HEADER

4D - Documentation   Français   English   German   English   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 6.7


GET HTTP HEADER (Kopfteil|FeldArray{; WertArray})

ParameterTypBeschreibung
Kopfteil|FeldArrayText|Text ArrayAnfrage HTTP Kopfteil oder Kopfteilfelder
WertArrayText ArrayHTTP Kopfteil Feldinhalt

Beschreibung

Der Befehl GET HTTP HEADER gibt entweder einen String oder zwei Arrays mit dem HTTP Kopfteil für die aktuell ablaufende Anfrage zurück.

Dieser Befehl funktioniert nur im nicht kontextuellen Modus. Er lässt sich von einer beliebigen Methode aus aufrufen (Datenbankmethoden On Web Connection oder On Web Authentication, Methode aufgerufen über '/4DACTION'...), die in einem Web Prozess im nicht kontextuellen Modus ausgeführt wird. Wird GET HTTP HEADER im kontextuellen Modus aufgerufen, gibt er einen leeren String zurück.

Erste Syntax: GET HTTP HEADER (Kopfteil)

Mit dieser Syntax gibt die Variable Kopfteil folgendes Ergebnis zurück:

"GET /page.html HTTP\1.0"+Char(13)+Char(10)+"User-Agent: browser"+

Char(13)+Char(10)+"Cookie: C=HELLO"

Die Felder sind unter Windows und MacOS durch CR+LF (Zeilenschaltung+Zeilenvorschub) voneinander getrennt.

Zweite Syntax: GET HTTP HEADER (FeldArray; WertArray)

Mit dieser Syntax werden in FeldArray und WertArray folgende Ergebnisse zurückgegeben:

FeldArray{1} = "X-METHOD" WertArray{1} = "GET" *
FeldArray{2} = "X-URL" WertArray{2} = "/page.html" *
FeldArray{3} = "X-VERSION" WertArray{3} = "HTTP/1.0" *
FeldArray{4} = "User-Agent" WertArray{4} = "browser"
FeldArray{5} = "Cookie" WertArray{5} = "C=HELLO"

* Die drei ersten Elemente sind keine HTTP Felder. Sie gehören zur ersten Zeile der Anfrage.

In Anlehnung an den HTTP Standard werden Feldnamen immer in Englisch geschrieben.

Nachfolgend sehen Sie eine Liste mit HTTP Feldern für eine Anfrage:

ACCEPT: Inhalt, den der Browser zulässt.

Accept-Language: Sprache(n), die der Browser verwenden kann (für Information). Damit lässt sich eine Web Site in der im Browser festgelegten Sprache auswählen.

Cookie: Liste mit Cookies

From: E-Mail Adresse des Browser Benutzers.

Host: Server-Name oder -Adresse (verwenden Sie z.B. URL, http://mywebserver

/mypage.html, nimmt Host den Wert «mywebserver» an). Damit können Sie mehrere Namen verwalten, die auf dieselbe IP Adresse zeigen (virtuelles Hosting).

Referer: Ursprung der Anfrage (zum Beispiel http://mywebserver/mypage1.html), z.B. die Seite, welche beim Klicken auf die Schaltfläche Previous angezeigt wird.

User-Agent: Browser oder Proxy-Name und Version.

Die HTTP-Felder wurden vom W3 Konsortium definiert. Die gesamte Liste finden Sie in RFC 2616 (Hypertext Transfer Protocol -- HTTP/1.1), welches Sie derzeit laden können unter www.w3.org.

Beispiel

Mit der folgenden Methode erhalten Sie den Inhalt eines beliebigen Feldes im Kopfteil einer HTTP Anfrage:

      ` Projektmethode GetHTTPField 
      ` GetHTTPField (Text) -> Text
      ` GetHTTPField (HTTP header name) -> HTTP header content

   C_TEXT($0;$1)
   C_LONGINT($vlItem)
   ARRAY TEXT($names;0)
   ARRAY TEXT($values;0)
   $0:=""
   GET HTTP HEADER($names;$values)
   $vlItem:=Find in array($names;$1)
   If ($vlItem>0)
      $0:=$values{$vlItem}
   End if

Diese Projektmethode können Sie folgendermassen aufrufen:

      ` Cookie header content
   $cookie:=GetHTTPField("Cookie")

Je nach der im Browser definierten Sprache können Sie verschiedene Seiten senden (zum Beispiel in der Datenbankmethode On Web Connection):

   $language:=GetHTTPField("Accept-Language")
   Case of
      :($language="@fr@")  `Französisch (siehe Liste ISO 639)
         SEND HTML FILE("index_fr.html")
      :($language="@sp@")  `Spanisch (siehe Liste ISO 639)
         SEND HTML FILE("index_es.html")
      Else
         SEND HTML FILE("index.html")
   End case

Hier ist ein Beispiel für virtuelle Hosts (zum Beispiel in der Datenbankmethode On Web Connection). Die Namen "home_site.com", "home_site1.com" und "home_site2.com" richten sich an dieselbe IP Adresse, zum Beispiel 192.1.2.3.

   $host:=GetHTTPField("Host")
   Case of
      :($host="www.site1.com")
         SEND HTML FILE("home_site1.com")
      :($host="www.site2.com")
         SEND HTML FILE("home_site2.com")
      Else
         SEND HTML FILE("home_site.com")
   End case

Referenz

GET HTTP BODY, SET HTTP HEADER.

Anwendung des Befehls

Reading a Full SOAP Request


4D - Documentation   Français   English   German   English   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next