HTTP dotaz

Aby tento příklad mohl být použit, nejprve se vysvětlí všechny základy HTTP. To je důležité pro pochopení funkce rozhraní.

Základy

Následující body by měly být rozhodně zohledněny:

  • Při požadavku přes HTTP se spojení od klienta vytváří, dokud není spojení serverem ukončeno.
  • Dotaz probíhá přes TCP na portu 80 (HTTP nešifrované) a na portu 443 (HTTPS šifrované).
  • Pokud se používá port 80 s http:// nebo port 443 s https://, je port skryt.
  • Vrstva spojení od HTTP/1.1 je taková, že spojení zůstává po určitou dobu otevřené, aby se vyhnulo handshakovi TCP. To není vidět v monitoru Antcas. Nicméně po timeoutu je spojení klientem, tedy serverem Antcas uzavřeno. Timeout by proto měl být dostatečně vysoký.
  • Každý dotaz je plně zpětně kompatibilní. Je jedno, zda server podporuje HTTP/1.0, HTTP/1.1 nebo HTTP/2.
  • Hlavička je Case-Insensitive. To znamená, že velikost písmen nehraje roli. Nicméně existují některé výrobci, kteří na tom nezáleží.
  • Kódování znaků v Antcas Control je vždy UTF-8. Pokud se používají jiné, musí být případně převáděny.
  • Maximální délka URL včetně Query činí 2'083 znaků.

Složení URL vypadá následovně:

http://server.tld/getdata?project=you%26i+project&id=25#anker
Komponenta Význam
http:// Definuje protokol. Antcas Control aktuálně podporuje http a https.
server.tld Definuje doménu (DNS) nebo IP adresu cílového serveru.
getdata Je URI serveru. Tato odpovídá cílové stránce, srovnatelné s cestou.
?[...] Znak ? odděluje URL od takzvaného GET požadavku, za ním následují všechna data formuláře také nazývaná Query. Query je vždy zakódováno, aby nahradilo nepodporované znaky.
#[...] Znak #- definuje kotvu na stránce. Takže lze skákat (posouvat) na libovolné místo. Tyto data nejsou přenášena na server. Navíc tento oblast včetně # nesmí být kopírována do dotazu, jinak by to vyvolalo jinou cílovou stránku na serveru.

Konfigurace cílových serverů se provádí v příslušné HTTP bráně.

Složení dotazu

Složení dotazu sestává z hlavičky a těla. Hlavička ukazuje v první řadě vždy použitou metodu, URI a protokol.

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

Následuje odpověď serveru. Tato obsahuje status kód dotazu. Tělo následuje hlavičku s prázdným řádkem.

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

<html>Hallo Welt</html>

Status kódy

Status kódy jsou rozděleny do skupin. Skupiny jsou definovány první číslicí. Kromě toho následuje po čísle význam v jasném textu. Několik příkladů:

Status Popis
200 OK Žádost byla úspěšná.
301 Found Přesměrování na skutečnou stránku. Protože Antcas Control následuje odkazy, tato odpověď je obvykle skryta.
404 Not Found Uvedená stránka nebyla nalezena.
500 Internal Server Error Vyskytla se chyba serveru.

Metody

GET a POST metody jsou nejčastěji používané.

Metoda Popis
GET Dotaz GET je standardní dotaz. Tato nepodporuje žádný obsah.
POST Dotaz POST odesílá obsah na server. Obsah může být také prázdný. Výhodou je, že obsah nemá omezení délky. Při dotazu GET lze přenést pouze určité množství dat.
PUT PUT se používá rozhraními k výměně informací.
DELETE Spolu s PUT slouží k mazání dat.
(ostatní) Další HTTP metody jsou také podporovány, ale vyžadují odpovídající konfiguraci.

Autentizace

Většina autentizací probíhá v hlavičce. Existují však také žádosti, které jsou definovány v Query nebo Content.

Může se stát, že musí být vytvořena session před skutečným dotazem. Session je pak nastavena jako hlavička Set-Cookie. Toto cookie musí být poté znovu předáno. Obsah cookies je Case-Sensitive, což znamená, že obsah musí být předán jeden k jednomu. Zde je zjednodušený příklad:

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

Odpověď serveru:

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

Nyní může být cookie použito v dalším dotazu:

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

Tipy

V vývojářské konzoli prohlížeče lze pod Síť vyhodnotit a testovat dotaz. Kromě toho je někdy vhodné kopírovat nebo zkoumat hlavičku.

Konfigurace

V Antcas Control se vytvoří HTTP rozhraní s bránou. Brána je nakonfigurována jako HTTP klient. Zde jsou cílová adresa a port (nutné) vloženy podle potřeby. Poté je dotaz nakonfigurován ve struktuře. K tomu je pod komunikací URL zapsána jako proměnná.

Jednoduchý dotaz

Aby byl vytvořen jednoduchý dotaz, vyberte libovolný typ dat. Tento je přednostně řetězec znaků (string). Pokud dojde ke změně hodnoty na výstupu, provede se již dotaz. Hodnota bude pak přímo použita jako Query.

Komplexní dotaz

Komplexnější dotaz je vytvořen pomocí funkčního bloku HTTP_REQUEST. K tomu musí být typ dat komunikace nastaven na raw. Odpověď může být poté vyhodnocena pomocí funkčního bloku HTTP_RESPONSE. ID dotazu musí být k tomu nutně spojeno, aby byla odpověď žádosti správně přiřazena.

Příklad

V tomto příkladu jsou data odesílána na server pomocí metody GET a je vyhodnocována odpověď. Úplná URL zní následovně:

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

Aby data mohla být odebrána nebo odeslána ze serveru, použije se následující příklad:

Poznámka: Příklad neukazuje, jak musí být požadavek vyvolán. Tento je vyvolán kladnou hranou na vstupu SET. Aby se zabránilo nežádoucímu dotazu, měl by být vstup DIS nastaven na TRUE.

Konfigurace rozhraní je nakonfigurována následovně: