4D v12.4

GET HTTP HEADER

Página Inicial

 
4D v12.4
GET HTTP HEADER

 

GET HTTP HEADER 


 

GET HTTP HEADER ( cabeçalho|arrayCampo {; valorArray} ) 
Parâmetro Tipo   Descrição
cabeçalho|arrayCampo  Texto, Array texto in Petição HTTP cabeçalho ou campos HTTP cabeçalho
valorArray  Array texto in conteúdo dos campos cabeçalho HTTP

O comando GET HTTP HEADER retorna uma string ou dois arrays, que contém o cabeçalho HTTP utilizado na petição em processo.

Este comando pode ser chamado desde qualquer método (Método de banco On Web Aunthentication ou Método de banco de dados On Web Connection, método chamado por '/4DACTION'...) executado em um processo web.

  • Primeira sintaxeGET HTTP HEADER (cabeçalho)

Quando se utiliza esta sintaxe, o resultado devolvido na variável cabeçalho é o seguinte:

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

Cada campo de cabeçalho está separado por uma sequencia CR+LF (Retorno de carro+Retorno de linha) em Windows e Mac OS.
  • Segunda sintaxe: GET HTTP HEADER (arrayCamp; arrayValores)

Quando utiliza esta sintaxe, os resultados devolvidos nos arrays arrayCamp e arrayValores são do seguinte tipo:

 

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

*Esses três primeiros elementos não são campos HTTP. Formam parte da primeira linha da petição.

Para estar de acordo com o padrão HTTP, os nomes dos campos sempre são escritos em inglês.

Esta é uma lista de alguns campos HTTP que podem ser utilizados em uma petição:

  • Accept: conteúdo permitido pelo navegador..
  • Accept-Language: idiomas aceitos pelo navegador (para informação). Permite selecionar uma página Web utilizando o idioma definido no navegador..
  • Cookie: lista de cookies
  • From: endereço de correio eletrônico do usuário do navegador.
  • Host: nome ou endereço do servidor (por exemplo utilizando uma URL, http://meuservidorweb/minhapagina.html, Host toma o valor «meuservidorweb»). Permite administrar vários nomes que apontam ao mesmo endereço IP (virtual hosting).
  • Referer: origem da petição (por exemplo http://meuservidorweb/minhapagina1.html), ou seja a página que o usuário mostra quando clicar no botão Anterior.
  • User-Agent: nome e versão do navegador ou do proxy.

Exemplo  

O seguinte método permite recuperar o conteúdo de todo campo de cabeçalho de petição HTTP:

  ` Método de projeto GetHTTPField
  ` GetHTTPField (Text) -> Text
  ` GetHTTPField (Nome cabeçalho HTTP) -> Conteúdo cabeçalho HTTP
 
 C_TEXT($0;$1)
 C_LONGINT($vlElem)
 ARRAY TEXT($nomes;0)
 ARRAY TEXT($valores;0)
 $0:=""
 GET HTTP HEADER($nomes;$valores)
 $vlElem:=Find in array($nomes;$1)
 If($vlElem>0)
    $0:=$valores{$vlElem}
 End if
  • Quando tiver escrito este método de projeto, pode ser chamada desta maneira:
  ` Conteúdo do cabeçalho Cookie
 $cookie:=GetHTTPField("Cookie")
 $idioma:=GetHTTPField("Accept-Language")
 Case of
    :($idioma="@fr@") `Francês (ver lista ISO 639)
       SEND HTML FILE("index_fr.html")
    :($idioma="@sp@") `Espanhol (ver lista ISO 639)
       SEND HTML FILE("index_es.html")
    Else
       SEND HTML FILE("index.html")
 End case


Nota: Os navegadores web permitem definir vários idiomas por padrão. Estão listados no campo "Accept-Language", separados por um ";". Sua propriedade está definida de acordo com sua posição dentro da cadeia; portanto é uma boa idéia testar a posição dos idiomas na cadeia.
  • Este é um exemplo de hosts virtuais (por exemplo no Método de banco de dados On Web Connection). Os seguintes nomes "home_site.com", "home_site1.com" e "home_site2.com" apontam ao mesmo endereço IP, por exemplo 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

 
PROPRIEDADES 

Produto: 4D
Tema: Web Server
Número 697

 
HISTÓRIA 

Criado por: 4D v6.7

 
VER TAMBÉM 

GET HTTP BODY
SET HTTP HEADER