4D v16.3

WEB GET HTTP HEADER

Home

 
4D v16.3
WEB GET HTTP HEADER

WEB GET HTTP HEADER 


 

WEB GET HTTP HEADER ( Header/FeldArray {; WertArray} ) 
Parameter Typ   Beschreibung
Header/FeldArray  Text, Array Text in Anfrage HTTP Kopfteil oder Kopfteilfelder
WertArray  Array Text in HTTP Kopfteil Feldinhalt

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

Dieser Befehl lässt sich von einer beliebigen Methode aus aufrufen (Datenbankmethode On Web Authentication oder Datenbankmethode On Web Connection aufgerufen über '/4DACTION'...), die in einem Web Prozess ausgeführt wird.

  • Erste Syntax: WEB 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 Mac OS durch CR+LF (Zeilenschaltung+Zeilenvorschub) voneinander getrennt.

  • Zweite Syntax: WEB 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.

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:=""
 WEB GET HTTP HEADER($names;$values)
 $vlItem:=Find in array($names;$1)
 If($vlItem>0)
    $0:=$values{$vlItem}
 End if
  • Diese Projektmethode können Sie folgendermaßen aufrufen:
  ` Cookie header content
 $cookie:=GetHTTPField("Cookie")
 $language:=GetHTTPField("Accept-Language")
 Case of
    :($language="@fr@") `Französisch (siehe Liste ISO 639)
       WEB SEND FILE("index_fr.html")
    :($language="@sp@") `Spanisch (siehe Liste ISO 639)
       WEB SEND FILE("index_es.html")
    Else
       WEB SEND FILE("index.html")
 End case

Hinweis: In Web Browsern lassen sich standardmäßig mehrere Sprachen definieren. Sie sind im Feld "Accept-Language" durch Strichpunkt getrennt aufgeführt. Die Priorität richtet sich nach der Stelle innerhalb des String; deshalb empfiehlt es sich, die Position der Sprache im String zu testen.

  • 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")
       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



Siehe auch 

WEB GET HTTP BODY
WEB SET HTTP HEADER

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Web Server
Nummer: 697

This command can be run in preemptive processes

 
GESCHICHTE 

Erstellt: 4D v6.7
Umbenannt: 4D v13

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)