4D v16.3

WEB GET HTTP HEADER

Página Inicial

 
4D v16.3
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 Método de banco de dados On Web Connection, 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")
 $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  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")
       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

 
HISTÓRIA 

Criado por: 4D v6.7
Renomear: 4D v13

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)