HTTP-Henvendelse

For å utføre dette eksemplet, forklares først alle grunnleggende ting om HTTP. Dette er viktig for å forstå hvordan grensesnittet fungerer.

Grunnleggende

Følgende punkter bør absolutt tas hensyn til:

  • Ved en forespørsel via HTTP opprettes en forbindelse fra klienten til serveren deler forbindelsen.
  • Henvendelsen skjer via TCP over port 80 (HTTP usikret) og over port 443 (HTTPS sikret).
  • Bruk av port 80 med http:// eller port 443 med https://, vil porte bli skjult.
  • Forbindelseslaget er fra HTTP/1.1 slik at forbindelsen holdes åpen en stund for å unngå TCP-håndtrykk. Dette er ikke synlig i Antcas-monitoren. Imidlertid blir forbindelsen fra klienten, altså Antcas-serveren, lukket etter timeout. Timeout bør derfor være tilstrekkelig høy.
  • Hver henvendelse er fullstendig bakoverkompatibel. Om en server støtter HTTP/1.0, HTTP/1.1 eller HTTP/2 er uansett.
  • Headeren er case-insensitive. Dette betyr at store og små bokstaver ikke spiller noen rolle. Det finnes imidlertid noen produsenter som ikke tar hensyn til dette.
  • Tegnkodingen i Antcas Control er alltid UTF-8. Hvis andre brukes, må disse konverteres om nødvendig.
  • Den maksimale lengden på en URL inkludert Query er 2'083 tegn.

Oppbyggingen av en URL ser slik ut:

http://server.tld/getdata?project=you%26i+project&id=25#anker
Komponent Beskrivelse
http:// Definerer protokollen. Antcas Control støtter for øyeblikket http og https.
server.tld Definerer domenen (DNS) eller IP-adressen til målserveren.
getdata Er URI-en til serveren. Denne svarer til målsiden, sammenlignbar med en sti.
?[...] Tegnene ? skiller URL-en fra det såkalte GET-forespørselen, og etterfølgende alle skjema-data også kalt Query. Query blir alltid koden for å erstatte ikke-støttede tegn.
#[...] Tegnene # definerer en anker på en side. Slik kan man hoppe til et vilkårlig sted (rulle). Disse dataene blir ikke sendt til serveren. Dessuten må dette området inkludert # ikke kopieres inn i henvendelsen, da dette ellers vil ringe opp en annen målside på serveren.

Konfigurasjonen av målserverene skjer i det tilsvarende HTTP-gatewayet.

Oppbygging Av En Henvendelse

Oppbyggingen av en henvendelse består av en header og en body. Headeren viser alltid i første linje den brukte metoden, URI-en og protokollen.

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

Deretter følger svar fra serveren. Dette inneholder statuskoden for henvendelsen. Bodyen følger headeren med en tom linje.

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

<html>Hallo Welt</html>

Statuskoder

Statuskodene er delt inn i grupper. Gruppene defineres av første siffer. Dessuten kommer betydningen på klart språk etter tallet. Her noen eksempler:

Status Beskrivelse
200 OK Forespørselen var vellykket.
301 Found Omdirigering til den egentlige siden. Da Antcas Control følger lenkene, blir dette svaret ofte skjult.
404 Not Found Den angitte siden ble ikke funnet.
500 Internal Server Error En serverfeil har oppstått.

Metoder

GET- og POST-metodene brukes oftest.

Metode Beskrivelse
GET GET-henvendelsen er standardhenvendelsen. Denne støtter ingen innhold.
POST POST-henvendelsen sender et innhold til serveren. Innholdet kan også være tomt. Fordelen her er at innholdet ikke har noen lengdebegrensning. Ved en GET-forespørsel kan bare en viss mengde data overføres.
PUT PUT brukes av grensesnitt for å utveksle informasjon.
DELETE Sammen med PUT brukes det til å slette data.
(andre) Andre HTTP-metoder støttes også, men krever en tilsvarende konfigurasjon.

Autentisering

De fleste autentiseringer skjer i headeren. Det finnes imidlertid også forespørsler som er definert i Query eller Content.

Det kan hende at en session må opprettes før den egentlige henvendelsen. Sessionen settes deretter som Header Set-Cookie. Dette kaken må deretter leveres igjen. Innholdet i kaken er case-sensitive, dette betyr at innholdet må overføres ett-til-ett. Her et forenklet eksempel:

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

Svar fra serveren:

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

Nå kan kaken brukes igjen i neste henvendelse:

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

Tips

I nettverksutvikleren i nettleseren kan henvendelsen evalueres og testes under Nettverk. Det er også noen ganger lurt å kopiere eller se på headeren.

Konfigurasjon

I Antcas Control opprettes et HTTP-grensesnitt med et gateway. Gatewayet konfigureres som en HTTP-klient. Her registreres måladressen og porten (nødvendig) tilsvarende. Deretter konfigureres henvendelsen i strukturen. For dette registreres URL-en som variabel under kommunikasjon.

Enkel Henvendelse

For å opprette en enkel henvendelse, velges en vilkårlig datatype. Denne er fortrinnsvis en streng (string). Oppstår det en endring i verdien ved utgangen, blir allerede en henvendelse utført. Verdien brukes deretter direkte som Query.

Kompleks Henvendelse

En mer kompleks henvendelse opprettes ved hjelp av funksjonsblokken HTTP_REQUEST. For dette må datatypen til kommunikasjonen settes til raw. Svar kan deretter evalueres ved hjelp av funksjonsblokken HTTP_RESPONSE. ID-en for henvendelsen må absolutt kobles sammen for å korrekt tilordne svaret til forespørselen.

Eksempel

I dette eksemplet sendes data via GET-metode til en server og svaret evalueres. Den fullstendige URL-en er som følger:

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

For at data kan hentes eller sendes fra en server, brukes følgende eksempel:

Merk: Eksemplet viser ikke hvordan forespørselen må utløses. Denne utløses med en positiv flanke på inngangen SET. For å hindre uønsket henvendelse, bør inngangen DIS settes til TRUE.

Konfigurasjonen av grensesnittet konfigureres som følger: