Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v20 R7
WEB GET HTTP HEADER

WEB GET HTTP HEADER 


 

WEB 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 WEB 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 (On Web Authentication Database Method ou QR SET DESTINATION, método chamado por '/4DACTION'...) executado em um processo web.

  • Primeira sintaxeWEB GET 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: WEB 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:=""
 WEB 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")
  • Pode enviar diferentes páginas em função do idioma do navegador (por exemplo em QR SET DESTINATION):
 $idioma:=GetHTTPField("Accept-Language")
 Case of
    :($idioma="@fr@") `Francês (ver lista ISO 639)
       WEB SEND FILE("index_fr.html")
    :($idioma="@sp@") `Espanhol (ver lista ISO 639)
       WEB SEND FILE("index_es.html")
    Else
       WEB SEND 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 string; portanto é uma boa ideia testar a posição dos idiomas na string.
  • Este é um exemplo de hosts virtuais (por exemplo no  QR SET DESTINATION). 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")
       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



Ver também 

WEB GET HTTP BODY
WEB SET HTTP HEADER

 
PROPRIEDADES 

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

This command can be run in preemptive processes

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v6.7
Renomear: 4D v13 (GET HTTP HEADER)

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v20 R7)