HTTP-Abfrage

Për të përshkruar këtë shembull, fillimisht do të shpjegohen të gjitha themeljet e HTTP. Kjo është e rëndësishme për të kuptuar funksionimin e ndërfaqes.

Themelat

Pikat e mëposhtme duhet të vërehen me siguri:

  • Në një kërkesë përmes HTTP, një lidhje hapet nga klienti deri në momentin kur lidhja ndërpretet nga serveri.
  • Aftësimi bëhet përmes TCP në portin 80 (HTTP pa enkriptim) dhe në portin 443 (HTTPS me enkriptim).
  • Nëse përdoret porti 80 me http:// ose porti 443 me https://, porti fshehët.
  • Shtresa e lidhjes nga HTTP/1.1 është e tillë që lidhja lënë hapur për një kohë të caktuar për të shmangur handshaken e TCP. Kjo nuk është e dukshme në monitorin e Antcas, por pas timeout-it lidhja mbyll nga klienti, pra nga serveri i Antcas. Prandaj timeout-i duhet të jetë shumë i lartë.
  • Çdo kërkesë është plotësisht e përgjithshme. Nuk ka rëndësi nëse një server mbështet HTTP/1.0, HTTP/1.1 ose HTTP/2.
  • Header-i është Case-Insensitive. Kjo do të thotë që shkronjat e mëdha dhe të vogla nuk kanë rëndësi. Megjithatë, ka disa prodhues që nuk kujdesen për këtë.
  • Kodimi i karaktereve në Antcas Control është gjithmonë UTF-8. Nëse përdoren të tjera, këto duhet të konvertohen.
  • Gjatësia maksimale e një URL duke përfshirë Query është 2'083 karaktere.

Struktura e një URL shihet si më poshtë:

http://server.tld/getdata?project=you%26i+project&id=25#anker
Komponenta Kuptimi
http:// Definon protokollin. Antcas Control mbështet aktualisht http dhe https.
server.tld Definon domenin (DNS) ose adresën IP të serverit të synimit.
getdata Është URI e serverit. Kjo përputhet me faqen e synimit, krahasueshme me një rrugë.
?[...] Simboli ? ndan URL-në nga kërkesa GET, pas së cilës vijnë të gjitha të dhënat e formës, quajtur edhe Query. Query-ja kodohet gjithmonë për të zëvendësuar karaktere të pështypura.
#[...] Simboli #-definon një ankor në një faqe. Kështu lejohet të kaloni në një vend të caktuar (të rrotulloni). Këto të dhëna nuk transmetohen te serveri. Për më tepër, ky sektor duke përfshirë # nuk duhet të kopohet në kërkesën, pasi kjo do të thirrte një faqe tjetër të synimit në server.

Konfigurimi i serverave të synimit bëhet në HTTP-Gateway të përkatësishëm.

Struktura e një kërkese

Struktura e një kërkese përbëhet nga një header dhe një body. Header-i tregon gjithmonë në rreshtin e parë metodën e përdorur, URI-në dhe protokollin.

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

Mbas kësaj vijon përgjigja e serverit. Kjo përmban kodin e statusit të kërkësës. Body-i vijon pas header-it me një rresht bosh.

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

<html>Hallo Welt</html>

Kode Statusi

Kodet e statusit janë të ndara në grupe. Grupet përcaktohen nga numri i parë. Për më tepër, pas numrit vjen kuptimi në gjuhën e thjeshtë. Këtu disa shembuj:

Statusi Përshkrim
200 OK Kërkesa ishte e suksesshme.
301 Found Ridrejtim në faqen e vërtetë. Pasi Antcas Control ndjek lidhjet, kjo përgjigje shfaqet zakonisht e fshehur.
404 Not Found Faqja e cila u caktua nuk u gjet.
500 Internal Server Error Ka ndodhur një gabim në server.

Metodat

Metodat GET dhe POST përdoren më së shpeshti.

Metoda Përshkrim
GET Kërkesa GET është kërkesa standarde. Kjo nuk mbështet asnjë përmbajtje.
POST Kërkesa POST dërgon një përmbajtje te serveri. Përmbajtja mund të jetë edhe e zbrazët. Avantazhi është se përmbajtja nuk ka kufizim në gjatësi. Në një kërkesë GET, vetëm një numër i caktuar i të dhënave mund të transmetohen.
PUT PUT përdoret nga ndërfaqet për të shkëmbyer informacione.
DELETE Bashkë me PUT shërben për të fshirë të dhëna.
(tjetra) Metoda të tjera HTTP mbështeten gjithashtu, por kërkojnë një konfigurim të përshtatshëm.

Autentifikimi

Shumica e autentifikimeve bëhen në header. Por ka edhe kërkesa që definohen në Query ose Content.

Mund të jetë e nevojshme të krijoni një session para kërkesës së vërtetë. Session-i caktohet si header Set-Cookie. Kjo cookie duhet të transmetohet përsëri. Përmbajtja e cookies është Case-Sensitive, që do të thotë se përmbajtja duhet të transmetohet një për një. Këtu një shembull i thjeshtë:

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

Përgjigja e serverit:

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

Tani cookie-u mund të përdoret përsëri në kërkesën e ardhshme:

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

Këshilla

Në konsolën e zhvilluesit të shfletuesit, nën Rrjetë kërkesa mund të vlerësohet dhe testohet. Për më tepër, është e këshillueshme herë pas here të kopjoni ose të shihni header-in.

Konfigurimi

Në Antcas Control krijon një ndërfaqe HTTP me një gateway. Gateway-i konfiguron si klient HTTP. Këtu vendosen adresa e synimit dhe porti (i nevojshëm) përkatësisht. Mbas kësaj, në strukturë kërkesa konfiguron. Për këtë, nën komunikim URL-ja regjistrohet si një variablë.

Kërkesë e thjeshtë

Për të krijuar një kërkesë të thjeshtë, zgjidhni një lloj të dhënash të caktuar. Kjo duhet të jetë preferencialisht një varg (string). Nëse ndodh një ndryshim në vlerë në dalje, kryhet menjëherë një kërkesë. Vlera përdoret atëherë direkt si Query.

Kërkesë e kompleksë

Një kërkesë më komplekse krijohet përmes Bllokut Funksion HTTP_REQUEST. Për këtë, lloji i dhënash i komunikimit duhet të caktohet në raw. Mbas kësaj, përgjigja mund të vlerësohet përmes Bllokut Funksion HTTP_RESPONSE. ID e kërkësës duhet të lidhet me siguri për të caktuar saktë përgjigjen e kërkesës.

Shembull

Në këtë shembull, të dhënat dërgohen te një server përmes metodës GET dhe përgjigja vlerësohet. URL-i i plotë është si më poshtë:

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

Për të marrë ose dërguar të dhëna nga një server, përdoret shembulli i mëposhtëm:

Shënim: Shembulli nuk tregon si duhet të aktivizohet kërkesa. Kjo aktivizohet me një anë positive në hyrjen SET. Për të parandaluar një kërkesë të papritur, duhet të caktohet hyrja DIS në TRUE.

Konfigurimi i ndërfaqes bëhet si më poshtë: