HTTP-Förfrågan

För att förse detta exempel, förklaras först alla grundläggande begrepp om HTTP. Detta är viktigt för att förstå hur gränssnittet fungerar.

Grundläggande Begrepp

Följande punkter bör definitivt beaktas:

  • Vid en begäran via HTTP upprättas en anslutning från klienten tills anslutningen bryts av servern.
  • Begäran sker via TCP över port 80 (HTTP oskyddat) och över port 443 (HTTPS skyddat).
  • Används port 80 med http:// eller port 443 med https://, döljs porten.
  • Anslutningsskiktet är från HTTP/1.1 sådant att anslutningen lämnas öppen en stund för att undvika TCP-handskakning. Detta syns inte i Antcas-monitorn. Efter timeout bryts dock anslutningen av klienten, alltså Antcas-servern. Timeout bör därför vara tillräckligt högt.
  • Varje begäran är fullständigt bakåtkompatibel. Det spelar ingen roll om servern stöder HTTP/1.0, HTTP/1.1 eller HTTP/2.
  • Headern är case-insensitive. Detta innebär att versaler och gemener inte spelar någon roll. Det finns dock vissa tillverkare som inte följer detta.
  • Teckenuppsättningen i Antcas Control är alltid UTF-8. Om andra används, måste de eventuellt konverteras.
  • Den maximala längden på en URL inklusive frågesträng är 2'083 tecken.

Uppbyggnaden av en URL ser ut som följer:

http://server.tld/getdata?project=you%26i+project&id=25#anker
Komponent Beteckning
http:// Definierar protokollet. Antcas Control stöder för närvarande http och https.
server.tld Definierar domänen (DNS) eller IP-adressen till målservern.
getdata Är URI:n för servern. Denna motsvarar målsidan, jämförbar med en sökväg.
?[...] Tecknet ? skiljer URL:en från så kallad GET-begäran, efterföljt av alla formdata även kallat query. Query kodas alltid för att ersätta icke stödda tecken.
#[...] Tecknet # definierar en ankarpunkt på en sida. På så sätt kan man hoppa till en godtycklig plats (scrolla). Dessa data skickas inte till servern. Dessutom får denna del inklusive # inte kopieras in i begäran, eftersom detta annars skulle ringa upp en annan målsida på servern.

Konfigurationen av målservern sker i motsvarande HTTP-gateway.

Uppbyggnad Av En Begäran

Uppbyggnaden av en begäran består av en header och en body. Headern visar alltid i första raden den använda metoden, URI:n och protokollet.

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

Därefter följer serverns svar. Detta innehåller statuskoden för begäran. Bodyn följer headern med en tom rad.

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

<html>Hallo Welt</html>

Statuskoder

Statuskoderna är indelade i grupper. Grupperna definieras av första siffran. Dessutom kommer betydelsen på klartext efter numret. Här några exempel:

Status Beskrivning
200 OK Förfrågan lyckades.
301 Found Omdirigering till den faktiska sidan. Eftersom Antcas Control följer länkarna, döljs detta svar vanligtvis.
404 Not Found Den angivna sidan hittades inte.
500 Internal Server Error Ett serverfel har inträffat.

Metoder

GET- och POST-metoderna används mest frekvent.

Metod Beskrivning
GET GET-förfrågan är standardförfrågan. Denna stöder ingen innehåll.
POST POST-förfrågan skickar ett innehåll till servern. Innehållet får också vara tomt. Fördelen är här att innehållet inte har någon längdbegränsning. Vid en GET-förfrågan kan endast en viss mängd data överföras.
PUT PUT används av gränssnitt för att utbyta information.
DELETE Tillsammans med PUT används det för att radera data.
(andra) Andra HTTP-metoder stöds också, men kräver en motsvarande konfiguration.

Autentisering

De flesta autentiseringar sker i headern. Det finns dock även förfrågningar som definieras i query eller innehåll.

Det kan hända att en session måste skapas innan den faktiska förfrågan. Sessionen sätts sedan som header Set-Cookie. Detta cookie måste sedan återföras. Innehållet i cookierna är case-sensitive, vilket innebär att innehållet måste överföras exakt. Här ett förenklat exempel:

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

Svar från servern:

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

Nu kan cookien användas igen i nästa förfrågan:

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

Tips

I webbläsarens utvecklarverktyg kan förfrågan utvärderas och testas under Nätverk. Dessutom är det ibland klokt att kopiera eller titta på headern.

Konfiguration

I Antcas Control skapas ett HTTP-gränssnitt med en gateway. Gatewayn konfigureras som HTTP-klient. Här anges måladressen och porten (krävs) enligt behov. Därefter konfigureras förfrågan i strukturen. För detta anges URL:en som variabel under Kommunikation.

Enkel Begäran

För att skapa en enkel begäran väljs ett godtyckligt datatyps. Denna är helst en sträng (string). Om en värdeförändring inträffar vid utgången, utförs redan en begäran. Värdet används sedan direkt som query.

Komplex Begäran

En mer komplex begäran skapas med hjälp av funktionsblocket HTTP_REQUEST. För detta måste datatypen för kommunikation ställas in på raw. Svaret kan sedan utvärderas med hjälp av funktionsblocket HTTP_RESPONSE. ID:n för begäran måste definitivt länkas samman, för att korrekt tilldela svaret till förfrågan.

Exempel

I detta exempel skickas data med GET-metoden till en server och svaret utvärderas. Den fullständiga URL:en lyder som följer:

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

För att data ska kunna hämtas eller skickas från/ till en server används följande exempel:

Anmärkning: Exemplet visar inte hur begäran ska utlösas. Denna utlöses med en positiv flank vid ingången SET. För att förhindra en oönskad begäran bör ingången DIS ställas in på TRUE.

Konfigurationen av gränssnittet konfigureras som följer: