Consulta HTTP

Para fornecer este exemplo, primeiro serão explicados todos os fundamentos do HTTP. Isso é importante para entender o funcionamento da interface.

Fundamentos

Os seguintes pontos devem ser observados:

  • Em uma solicitação via HTTP, uma conexão é estabelecida pelo cliente até que a conexão seja encerrada pelo servidor.
  • A consulta ocorre via TCP na porta 80 (HTTP não criptografado) e na porta 443 (HTTPS criptografado).
  • Se a porta 80 for usada com http:// ou a porta 443 com https://, a porta será ocultada.
  • A camada de conexão a partir do HTTP/1.1 é tal que a conexão permanece aberta por um tempo para evitar o handshake do TCP. Isso não é visível no monitor do Antcas. No entanto, após o timeout, a conexão é fechada pelo cliente, ou seja, pelo servidor Antcas. O timeout deve ser, portanto, suficientemente alto.
  • Toda consulta é totalmente compatível com versões anteriores. Se um servidor suporta HTTP/1.0, HTTP/1.1 ou HTTP/2 não importa.
  • O cabeçalho é insensível a maiúsculas e minúsculas. Isso significa que a diferença entre letras maiúsculas e minúsculas não importa. No entanto, alguns fabricantes não implementam isso corretamente.
  • A codificação de caracteres no Antcas Control é sempre UTF-8. Se outras forem usadas, elas devem ser convertidas se necessário.
  • O comprimento máximo de uma URL incluindo a consulta é 2'083 caracteres.

A estrutura de uma URL é a seguinte:

http://server.tld/getdata?project=you%26i+project&id=25#anker
Componente Significado
http:// Define o protocolo. O Antcas Control atualmente suporta http e https.
server.tld Define o domínio (DNS) ou endereço IP do servidor de destino.
getdata É a URI do servidor. Isso corresponde à página de destino, comparável a um caminho.
?[...] O ? separa a URL da chamada GET, e todos os dados do formulário, também chamados de consulta, seguem. A consulta é sempre codificada para substituir caracteres não suportados.
#[...] O símbolo #-define uma âncora em uma página. Assim, pode-se pular para qualquer posição (rolar). Esses dados não são transmitidos ao servidor. Além disso, essa parte incluindo # não deve ser copiada para a consulta, pois isso chamaria outra página de destino no servidor.

A configuração dos servidores de destino é feita no gateway HTTP correspondente.

Estrutura De Uma Consulta

A estrutura de uma consulta consiste em um cabeçalho e um corpo. O cabeçalho sempre mostra o método usado, a URI e o protocolo na primeira linha.

GET /getdata?project=you%26i+project&id=25 HTTP/1.1
Host: server.tld

Isso é seguido pela resposta do servidor. Isso inclui o código de status da consulta. O corpo segue o cabeçalho com uma linha vazia.

HTTP/1.1 200 OK
Server: Apache2
Content-Type: text/html

<html>Olá Mundo</html>

Códigos De Status

Os códigos de status estão divididos em grupos. Os grupos são definidos pelo primeiro dígito. Além disso, após o número vem o significado em texto claro. Aqui alguns exemplos:

Status Descrição
200 OK A solicitação foi bem-sucedida.
301 Found Redirecionamento para a página real. Como o Antcas Control segue os links, essa resposta geralmente é ocultada.
404 Not Found A página especificada não foi encontrada.
500 Internal Server Error Ocorreu um erro no servidor.

Métodos

Os métodos GET e POST são os mais frequentemente usados.

Método Descrição
GET A consulta GET é a consulta padrão. Isso não suporta conteúdo.
POST A consulta POST envia um conteúdo para o servidor. O conteúdo pode estar vazio. A vantagem aqui é que o conteúdo não tem limite de comprimento. Em uma solicitação GET, apenas um número limitado de dados podem ser transmitidos.
PUT PUT é usado por interfaces para trocar informações.
DELETE Junto com PUT, serve para excluir dados.
(outros) Outros métodos HTTP também são suportados, mas requerem configuração correspondente.

Autenticação

A maioria das autenticações ocorre no cabeçalho. No entanto, existem solicitações que são definidas na consulta ou no conteúdo.

Pode ser necessário criar uma sessão antes da solicitação real. A sessão é então definida como cabeçalho Set-Cookie. Este cookie deve ser passado novamente. O conteúdo dos cookies é sensível a maiúsculas e minúsculas, o que significa que o conteúdo deve ser passado exatamente. Aqui está um exemplo simplificado:

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

Resposta do servidor:

HTTP/1.1 200 OK
Server: Apache2
Content-Type: text/html
Set-Cookie: SESSION=vmvbquk7dq6dbbcq

Agora o cookie pode ser usado novamente na próxima consulta:

GET /opendoor HTTP/1.1
Host: server.tld
Cookie: SESSION=vmvbquk7dq6dbbcq

Dicas

No console do desenvolvedor do navegador, a consulta pode ser avaliada e testada na seção de rede. Além disso, às vezes é recomendável copiar ou visualizar o cabeçalho.

Configuração

No Antcas Control, uma interface HTTP é criada com um gateway. O gateway é configurado como cliente HTTP. Aqui, o endereço de destino e a porta (obrigatório) são inseridos conforme necessário. Em seguida, a consulta é configurada na estrutura. Para isso, a URL é inserida como variável sob Comunicação.

Consulta Simples

Para criar uma consulta simples, um tipo de dados arbitrário é escolhido. Este deve ser preferencialmente uma string (cadeia de caracteres). Se houver uma alteração de valor na saída, uma consulta já será executada. O valor será então usado diretamente como consulta.

Consulta Complexa

Uma consulta mais complexa é criada usando o bloco de função HTTP_REQUEST. Para isso, o tipo de dados da comunicação deve ser definido como raw. A resposta pode então ser avaliada usando o bloco de função HTTP_RESPONSE. O ID da consulta deve ser vinculado para associar corretamente a resposta à solicitação.

Exemplo

Neste exemplo, os dados são enviados para um servidor usando o método GET e a resposta é avaliada. A URL completa é a seguinte:

http://server.tld/getdata?project=you%26i+project&id=25

Para que os dados possam ser recuperados ou enviados de um servidor, o seguinte exemplo é usado:

Aviso: O exemplo não mostra como a solicitação deve ser acionada. Isso é feito com uma borda positiva na entrada SET. Para evitar uma consulta indesejada, a entrada DIS deve ser definida como TRUE.

A configuração da interface é feita da seguinte forma: