HTTP-запрос

Чтобы привести этот пример в действие, сначала объясняются все основы HTTP. Это важно для понимания работы интерфейса.

Основы

Следующие пункты следует обязательно учитывать:

  • При запросе через HTTP клиент устанавливает соединение, пока сервер его не разорвет.
  • Запрос осуществляется через TCP на порт 80 (HTTP нешифрованный) и на порт 443 (HTTPS зашифрованный).
  • Если используется порт 80 с http:// или порт 443 с https://, то порт скрывается.
  • Слой соединения в HTTP/1.1 такой, что соединение некоторое время остается открытым, чтобы избежать рукопожатия TCP. Это не видно в мониторе Antcas. Однако после тайм-аута соединение закрывается клиентом, то есть сервером Antcas. Поэтому тайм-аут должен быть достаточно большим.
  • Каждый запрос полностью совместим с предыдущими версиями. Не имеет значения, поддерживает ли сервер HTTP/1.0, HTTP/1.1 или HTTP/2.
  • Заголовок нечувствителен к регистру. Это означает, что регистр букв не имеет значения. Однако некоторые производители не обращают на это внимание при реализации.
  • Кодировка символов в Antcas Control всегда UTF-8. Если используются другие, их необходимо преобразовать.
  • Максимальная длина URL включая запрос составляет 2'083 символов.

Структура URL выглядит следующим образом:

http://server.tld/getdata?project=you%26i+project&id=25#anker
Компонент Значение
http:// Определяет протокол. Antcas Control в настоящее время поддерживает http и https.
server.tld Определяет домен (DNS) или IP-адрес целевого сервера.
getdata Это URI сервера. Он соответствует целевой странице, аналогично пути.
?[...] Знак ? разделяет URL от так называемого GET-запроса, за которым следуют все данные формы, также называемые запросом. Запрос всегда кодируется, чтобы заменить не поддерживаемые символы.
#[...] Символ #-определяет якорь на странице. Таким образом, можно перейти (пролистать) в любое место. Эти данные не передаются на сервер. Кроме того, этот раздел вместе с # не должен быть скопирован в запрос, иначе будет вызвана другая целевая страница на сервере.

Настройка целевых серверов выполняется в соответствующем HTTP-шлюзе.

Структура запроса

Структура запроса состоит из заголовка и тела. В первой строке заголовка всегда указывается используемый метод, URI и протокол.

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

Затем следует ответ сервера. Он содержит статус-код запроса. Тело следует за заголовком с пустой строкой.

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

<html>Привет, мир</html>

Коды состояния

Коды состояния разделены на группы. Группы определяются первой цифрой. Кроме того, после числа следует значение в понятном виде. Вот несколько примеров:

Статус Описание
200 OK Запрос был успешным.
301 Found Перенаправление на фактическую страницу. Поскольку Antcas Control следует за ссылками, этот ответ обычно скрывается.
404 Not Found Указанная страница не найдена.
500 Internal Server Error Произошла ошибка сервера.

Методы

Методы GET и POST используются наиболее часто.

Метод Описание
GET Запрос GET является стандартным запросом. Он не поддерживает контент.
POST Запрос POST отправляет контент на сервер. Контент может быть пустым. Преимущество здесь в том, что у контента нет ограничения по длине. При запросе GET можно передать только определенное количество данных.
PUT PUT используется интерфейсами для обмена информацией.
DELETE Вместе с PUT он служит для удаления данных.
(другие) Другие методы HTTP также поддерживаются, но требуют соответствующей настройки.

Аутентификация

Большинство аутентификаций происходят в заголовке. Однако существуют запросы, которые определяются в запросе или контенте.

Возможно, что перед фактическим запросом необходимо создать сессию. Затем сессия устанавливается как заголовок Set-Cookie. Это куки затем должны быть переданы снова. Содержимое куки чувствительно к регистру, это означает, что содержимое должно быть передано один в один. Вот упрощенный пример:

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

Ответ сервера:

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

Теперь это куки можно использовать снова в следующем запросе:

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

Советы

В консоли разработчика браузера можно оценить и протестировать запрос в разделе "Сеть". Кроме того, иногда полезно скопировать или просмотреть заголовок.

Настройка

В Antcas Control создается HTTP-интерфейс с шлюзом. Шлюз настраивается как HTTP-клиент. Здесь соответствующим образом вводятся целевой адрес и порт (обязательно). Затем в структуре настраивается запрос. Для этого в разделе "Коммуникация" URL вводится как переменная.

Простой запрос

Чтобы создать простой запрос, выбирается любой тип данных. Он предпочтительно является строкой (string). Если на выходе происходит изменение значения, то уже выполняется запрос. Значение затем используется непосредственно как запрос.

Сложный запрос

Более сложный запрос создается с помощью функционального блока HTTP_REQUEST. Для этого тип данных коммуникации должен быть установлен на raw. Затем ответ можно оценить с помощью функционального блока HTTP_RESPONSE. ID запроса должно быть обязательно связано, чтобы правильно сопоставить ответ запросу.

Пример

В этом примере данные отправляются на сервер с использованием метода GET и анализируется ответ. Полный URL выглядит следующим образом:

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

Чтобы данные могли быть получены или отправлены с сервера, используется следующий пример:

Примечание: Пример не показывает, как должен быть инициирован запрос. Он запускается с положительным фронтом на входе SET. Чтобы предотвратить непреднамеренный запрос, вход DIS должен быть установлен в TRUE.

Настройка интерфейса выполняется следующим образом: