Zapytanie HTTP

Aby uzupełnić ten przykład, najpierw wyjaśniane są wszystkie podstawy dotyczące HTTP. Jest to ważne, aby zrozumieć działanie interfejsu.

Podstawy

Następujące punkty należy bezwzględnie uwzględnić:

  • W przypadku żądania przez HTTP klient nawiązuje połączenie, aż do momentu jego zamknięcia przez serwer.
  • Żądanie odbywa się za pośrednictwem TCP na porcie 80 (HTTP niezaszyfrowane) i na porcie 443 (HTTPS zaszyfrowane).
  • Jeśli użyty zostanie port 80 z http:// lub port 443 z https://, port jest ukrywany.
  • Warstwa połączenia od HTTP/1.1 jest taka, że połączenie pozostaje otwarte przez pewien czas, aby ominąć uścisk dłoni TCP. Nie jest to widoczne w monitorze Antcas. Jednak po upływie czasu połączenie zostanie zamknięte przez klienta, czyli serwerem Antcas. Czas oczekiwania powinien być odpowiednio wysoki.
  • Każde zapytanie jest całkowicie wstecznie kompatybilne. Nie ma znaczenia, czy serwer obsługuje HTTP/1.0, HTTP/1.1 lub HTTP/2.
  • Nagłówek jest nieczuły na wielkość liter. Oznacza to, że wielkość liter nie ma znaczenia. Istnieją jednak niektóre producenty, którzy nie zwracają uwagi na poprawne wdrożenie tej funkcji.
  • Kodowanie znaków w Antcas Control jest zawsze UTF-8. Jeśli używane są inne, należy je ewentualnie przekonwertować.
  • Maksymalna długość URL wraz z zapytaniem wynosi 2'083 znaków.

Budowa adresu URL przedstawia się następująco:

http://server.tld/getdata?project=you%26i+project&id=25#anker
Komponent Znaczenie
http:// Definiuje protokół. Antcas Control obecnie obsługuje http i https.
server.tld Definiuje domenę (DNS) lub adres IP serwera docelowego.
getdata Jest to URI serwera. Odpowiada stronie docelowej, porównywalnej z ścieżką.
?[...] Znak ? oddziela adres URL od tzw. żądania GET, za nim następują wszystkie dane formularza, również nazywane zapytaniem. Zapytanie jest zawsze kodowane, aby zastąpić nieobsługiwane znaki.
#[...] Znak #- definiuje kotwicę na stronie. W ten sposób można przejść do dowolnego miejsca (przewinięcie). Te dane nie są przekazywane do serwera. Ponadto ten obszar wraz z # nie może być skopiowany do zapytania, ponieważ w przeciwnym razie zostanie wywołana inna strona docelowa na serwerze.

Konfiguracja serwerów docelowych odbywa się w odpowiednim bramce HTTP.

Budowa zapytania

Budowa zapytania składa się z nagłówka i ciała. Nagłówek zawsze pokazuje w pierwszej linii używaną metodę, URI i protokół.

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

Następnie następuje odpowiedź serwera. Zawiera ona kod stanu zapytania. Ciało następuje po nagłówku z pustym wierszem.

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

<html>Hallo Welt</html>

Kody stanu

Kody stanu są podzielone na grupy. Grupy są określone przez pierwszą cyfrę. Ponadto po liczbie następuje znaczenie w języku naturalnym. Oto kilka przykładów:

Status Opis
200 OK Żądanie zakończyło się powodzeniem.
301 Found Przekierowanie do rzeczywistej strony. Ponieważ Antcas Control śledzi linki, ta odpowiedź jest zwykle ukrywana.
404 Not Found Podana strona nie została znaleziona.
500 Internal Server Error Wystąpił błąd serwera.

Metody

Metody GET i POST są najczęściej używane.

Metoda Opis
GET Żądanie GET jest domyślnym żądaniem. Nie obsługuje żadnej treści.
POST Żądanie POST wysyła treść do serwera. Treść może być również pusta. Zaletą jest to, że treść nie ma ograniczenia długości. W przypadku żądania GET można przekazać tylko określoną liczbę danych.
PUT PUT jest używane przez interfejsy do wymiany informacji.
DELETE Wraz z PUT służy do usuwania danych.
(inne) Inne metody HTTP są również obsługiwane, wymagają jednak odpowiedniej konfiguracji.

Autoryzacja

Większość autoryzacji odbywa się w nagłówku. Istnieją jednak żądania, które są zdefiniowane w zapytaniu lub treści.

Może być konieczne utworzenie sesji przed rzeczywistym żądaniem. Sesja jest następnie ustawiana jako nagłówek Set-Cookie. To ciasteczko musi zostać przekazane ponownie. Zawartość ciasteczek jest wrażliwa na wielkość liter, co oznacza, że zawartość musi być przekazana dokładnie taka sama. Oto uproszczony przykład:

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

Odpowiedź serwera:

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

Teraz ciasteczko może zostać ponownie użyte w następnym żądaniu:

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

Porady

W konsoli programisty przeglądarki można pod kątem sieci ocenić i przetestować żądanie. Ponadto czasami warto skopiować lub sprawdzić nagłówek.

Konfiguracja

W Antcas Control tworzy się interfejs HTTP z bramką. Bramka jest skonfigurowana jako klient HTTP. Tutaj odpowiednio wprowadza się adres docelowy i port (wymagany). Następnie w strukturze konfiguruje się zapytanie. W tym celu pod komunikacją wprowadza się URL jako zmienną.

Proste zapytanie

Aby utworzyć proste zapytanie, wybiera się dowolny typ danych. Jest to preferencyjnie ciąg znaków (string). Jeśli na wyjściu wystąpi zmiana wartości, zostanie wykonane już zapytanie. Wartość jest następnie bezpośrednio używana jako zapytanie.

Złożone zapytanie

Bardziej złożone zapytanie tworzy się za pomocą bloku funkcji HTTP_REQUEST. W tym celu typ danych komunikacji musi być ustawiony na raw. Odpowiedź można następnie ocenić za pomocą bloku funkcji HTTP_RESPONSE. ID zapytania musi być bezwzględnie połączone, aby prawidłowo przypisać odpowiedź do żądania.

Przykład

W tym przykładzie dane są wysyłane za pomocą metody GET do serwera i ocenia się odpowiedź. Pełny adres URL wygląda następująco:

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

Aby dane mogły być pobierane lub wysyłane z serwera, używa się następującego przykładu:

Uwaga: Przykład nie pokazuje, jak należy wywołać żądanie. Jest ono wywoływane przez dodatnią krawędź na wejściu SET. Aby zapobiec niechcianemu zapytaniu, wejście DIS powinno być ustawione na TRUE.

Konfiguracja interfejsu jest następująca: