Solicitare HTTP

Pentru a completa acest exemplu, se explică mai întâi toate bazele referitoare la HTTP. Acest lucru este important pentru a înțelege modul de funcționare al interfeței.

Bazele

Următoarele puncte trebuie să fie luate în considerare cu siguranță:

  • La o cerere prin HTTP, o conexiune este stabilită de la client până când conexiunea este separată de server.
  • Interogarea se face prin TCP pe portul 80 (HTTP necripat) și pe portul 443 (HTTPS cripat).
  • Dacă se utilizează portul 80 cu http:// sau portul 443 cu https://, portul este ascuns.
  • Stratul de conexiune din HTTP/1.1 este astfel încât conexiunea este lăsată deschisă pentru o perioadă de timp pentru a evita handshake-ul TCP. Acest lucru nu este vizibil în monitorul Antcas. Cu toate acestea, după expirarea timpului, conexiunea este închisă de la client, adică de la serverul Antcas. Timpul de expirare ar trebui să fie corespunzător ridicat.
  • Fiecare interogare este complet compatibilă cu versiunile anterioare. Este indiferent dacă un server suportă HTTP/1.0, HTTP/1.1 sau HTTP/2.
  • Antetul este insensibil la majuscule și minuscule. Acest lucru înseamnă că literele mari și mici nu au importanță. Cu toate acestea, există unii producători care nu acordă atenție implementării acestui aspect.
  • Codificarea caracterelor în Antcas Control este întotdeauna UTF-8. Dacă se utilizează alte codificări, acestea trebuie convertite dacă este necesar.
  • Lungimea maximă a unei URL inclusiv Query este de 2'083 caractere.

Structura unei URL este următoarea:

http://server.tld/getdata?project=you%26i+project&id=25#anker
Componentă Semnificație
http:// Definește protocolul. Antcas Control suportă în prezent http și https.
server.tld Definește domeniul (DNS) sau adresa IP a serverului de destinație.
getdata Este URI-ul serverului. Aceasta corespunde paginii de destinație, comparabilă cu un cale.
?[...] Semnul ? separă URL-ul de așa-numitul request GET, după care urmează toate datele formularului, denumite și Query. Query este întotdeauna codificat pentru a înlocui caracterele nesuportate.
#[...] Semnul #- definește un ancoră pe o pagină. Astfel, se poate sări la orice locație (derula). Aceste date nu sunt transmise la server. În plus, această secțiune inclusiv # nu trebuie copiată în interogare, deoarece aceasta ar apela altă pagină de destinație pe server.

Configurarea serverelor de destinație se face în gateway-ul HTTP corespunzător.

Structura unei interogări

Structura unei interogări constă dintr-un antet și un corp. Antetul arată întotdeauna în prima linie metoda utilizată, URI-ul și protocolul.

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

Următoarea este răspunsul serverului. Acesta include codul de stare al interogării. Corpul urmează antetului cu o linie goală.

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

<html>Hallo Welt</html>

Coduri de stare

Codurile de stare sunt grupate. Grupurile sunt definite prin prima cifră. În plus, după număr apare semnificația în text clar. Iată câteva exemple:

Stare Descriere
200 OK Cererea a fost reușită.
301 Found Redirecționare către pagina reală. Deoarece Antcas Control urmează linkurile, acest răspuns este de obicei ascuns.
404 Not Found Pagina specificată nu a fost găsită.
500 Internal Server Error A apărut o eroare de server.

Metode

Metodele GET și POST sunt cele mai frecvent utilizate.

Metodă Descriere
GET Interogarea GET este interogarea standard. Aceasta nu suportă niciun conținut.
POST Interogarea POST trimite un conținut la server. Conținutul poate fi și gol. Avantajul este că conținutul nu are o limitare de lungime. La o cerere GET, doar un număr anumit de date pot fi transmise.
PUT PUT este utilizat de interfețe pentru a schimba informații.
DELETE Alături de PUT, servește la ștergerea datelor.
(alte) Alte metode HTTP sunt, de asemenea, suportate, dar necesită o configurare corespunzătoare.

Autentificare

Majoritatea autentificărilor au loc în antet. Există însă și cereri care sunt definite în Query sau Content.

Poate fi necesar să se creeze o sesiune înainte de interogarea reală. Sesiunea este apoi setată ca antet Set-Cookie. Acest cookie trebuie apoi returnat. Conținutul cookie-urilor este sensibil la majuscule și minuscule, ceea ce înseamnă că conținutul trebuie returnat exact așa. Iată un exemplu simplificat:

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

Răspunsul serverului:

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

Acum, cookie-ul poate fi reutilizat în următoarea interogare:

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

Sfaturi

În consola dezvoltatorului din browser, sub Rețea, cererea poate fi evaluată și testată. De asemenea, uneori este recomandabil să copiați sau să vizionați antetul.

Configurare

În Antcas Control se creează o interfață HTTP cu un gateway. Gateway-ul este configurat ca client HTTP. Aici sunt introduse adresa de destinație și portul (obligatoriu) corespunzător. Apoi, în structură, se configurează interogarea. Pentru aceasta, sub Comunicare, URL-ul este introdus ca variabilă.

Interogare simplă

Pentru a crea o interogare simplă, se selectează un tip de date oricum. Acesta este preferabil o șir de caractere (string). Dacă apare o schimbare de valoare la ieșire, se efectuează deja o interogare. Valoarea este apoi utilizată direct ca Query.

Interogare complexă

O interogare mai complexă se creează cu ajutorul blocului funcțional HTTP_REQUEST. Pentru aceasta, tipul de date al comunicării trebuie setat pe raw. Răspunsul poate fi apoi evaluat cu ajutorul blocului funcțional HTTP_RESPONSE. ID-ul interogării trebuie să fie obligatoriu legat pentru a asocia corect răspunsul cererii.

Exemplu

În acest exemplu, datele sunt trimise la un server prin metoda GET și se evaluează răspunsul. URL-ul complet este următorul:

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

Pentru a putea prelua sau trimite date de la un server, se utilizează următorul exemplu:

Notă: Exemplul nu arată cum trebuie declanșată cererea. Aceasta este declanșată cu o flancă pozitivă la intrarea SET. Pentru a preveni o interogare nedorită, intrarea DIS ar trebui setată pe TRUE.

Configurarea interfeței se face astfel: