GET HTTP HEADER

4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 6.7


GET HTTP HEADER (encab|arrayCamp{; arrayValores})

ParámetroTipoDescripción
encab|arrayCampTexto|Array TextEncabezado HTTP de la petición o
Campos del encabezado HTTP
arrayValoresArray TextoContenido de los campos del encabezado HTTP

Descripción

El comando GET HTTP HEADER devuelve, o una cadena o dos arrays, que contienen el encabezado HTTP utilizado en la petición en proceso.

Este comando funciona únicamente en modo no contextual. Puede llamarse desde cualquier método (Método de base On Web Connection o Método de base On Web Authentication, método llamado por '/4DACTION'...) ejecutado en un proceso Web en un modo no contextual. Si GET HTTP HEADER se llama en modo contextual, devuelve cadenas vacías.

Primera sintaxis: GET HTTP HEADER (encabezado)

Cuando se utiliza esta sintaxis, el resultado devuelto en la variable encabezado es el siguiente:

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

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

Cada campo de encabezado está separado por una secuencia CR+LF (Retorno de carro+Retorno de línea) bajo Windows y Mac OS.

Segunda sintaxis: GET HTTP HEADER (arrayCamp; arrayValores)

Cuando utiliza esta sintaxis, los resultados devueltos en los arrays fieldArray y valueArray son del tipo siguiente:

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

* Estos tres primeros elementos no corresponden a los campos HTTP. Forman parte de la primera línea de la petición.

Conforme al estándar HTTP, los nombres de los campos siempre se escriben en inglés.

Esta es una lista de algunos campos HTTP que pueden utilizarse en una petición:

Accept: contenido permitido por el navegador.

Accept-Language: idioma(s) aceptado(s) por el navegador (para información). Permite seleccionar una página Web utilizando el idioma definido en el navegador.

Cookie: lista de cookies

From: dirección de correo electrónico del usuario del navegador.

Host: nombre o dirección del servidor (por ejemplo utilizando un URL, http://miservidorweb/mipagina.html, Host toma el valor «miservidorweb»). Permites administrar varios nombres que apuntan a la misma dirección IP (virtual hosting).

Referer: origen de la petición (por ejemplo http://miservidorweb/mipagina1.html), es decir la página que el usuario muestra cuando se hace clic en el botón Anterior.

User-Agent: nombre y versión del navegador o del proxy.

Ejemplo

El siguiente método permite recuperar el contenido de todo campo de encabezado de petición HTTP:

      ` Método de proyecto GetHTTPField 
      ` GetHTTPField (Text) -> Text
      ` GetHTTPField (Nombre encabezado HTTP) -> Contenido encabezado HTTP

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

Una vez escrito este método de proyecto, puede llamarse de esta forma:

      ` Contenido del encabezado Cookie
   $cookie:=GetHTTPField("Cookie")

Puede enviar diferentes páginas en función del idioma del navegador (por ejemplo en el Método

On Web Connection):

   $idioma:=GetHTTPField("Accept-Language")
   Case of
      : ($idioma="@fr@")    `Francés (ver lista ISO 639)
         SEND HTML FILE("index_fr.html")
      : ($idioma="@sp@")    `Español (ver lista ISO 639)
         SEND HTML FILE("index_es.html")
      Else
         SEND HTML FILE("index.html")
   End case

Nota: Los navegadores Web permiten definir varios idiomas por defecto. Están listados en el campo "Accept-Language", separados por un ";". Su propiedad está definida de acuerdo a su posición dentro de la cadena; por lo tanto es una buena idea probar la posición de los idiomas en la cadena.

Este es un ejemplo de hosts virtuales (por ejemplo en el Método de base On Web Connection). Los siguiente nombres "home_site.com", "home_site1.com" y "home_site2.com" apuntan a la misma dirección IP, por ejemplo 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

Ver también

GET HTTP BODY, SET HTTP HEADER.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente