Consulta HTTP

Para proporcionar este ejemplo, primero se explican todas las bases de HTTP. Esto es importante para comprender el funcionamiento de la interfaz.

Bases

Los siguientes puntos deben tenerse en cuenta:

  • En una solicitud a través de HTTP, se establece una conexión desde el cliente hasta que la conexión sea cerrada por el servidor.
  • La consulta se realiza a través de TCP en el puerto 80 (HTTP no cifrado) y en el puerto 443 (HTTPS cifrado).
  • Si se utiliza el puerto 80 con http:// o el puerto 443 con https://, el puerto se oculta.
  • A partir de HTTP/1.1, la capa de conexión es tal que la conexión se mantiene abierta durante un tiempo para evitar el handshake de TCP. Esto no es visible en el monitor de Antcas Hub. Sin embargo, después del tiempo de espera, la conexión se cierra desde el cliente, es decir, desde el servidor Antcas. Por lo tanto, el tiempo de espera debe ser lo suficientemente alto.
  • Cada consulta es completamente compatible hacia atrás. No importa si un servidor admite HTTP/1.0, HTTP/1.1 o HTTP/2.
  • El encabezado es insensible a mayúsculas y minúsculas. Esto significa que la distinción entre mayúsculas y minúsculas no importa. Sin embargo, algunos fabricantes no tienen en cuenta esto al implementarlo.
  • La codificación de caracteres en Antcas Control siempre es UTF-8. Si se utilizan otras, estas deben convertirse si es necesario.
  • La longitud máxima de una URL incl. consulta es de 2'083 caracteres.

La estructura de una URL es la siguiente:

http://server.tld/getdata?project=you%26i+project&id=25#anker
Componente Significado
http:// Define el protocolo. Antcas Control actualmente admite http y https.
server.tld Define el dominio (DNS) o la dirección IP del servidor de destino.
getdata Es la URI del servidor. Esta corresponde a la página de destino, comparable con una ruta.
?[...] El ? separa la URL de la llamada GET, detrás de ella siguen todos los datos del formulario también llamados consulta. La consulta siempre se codifica para reemplazar caracteres no admitidos.
#[...] El signo # define un ancla en una página. Así, se puede saltar a cualquier lugar (desplazarse). Estos datos no se transmiten al servidor. Además, esta área incl. # no debe copiarse en la consulta, ya que esto llamaría a otra página de destino en el servidor.

La configuración de los servidores de destino se realiza en la puerta de enlace HTTP correspondiente.

Estructura De Una Consulta

La estructura de una consulta consiste en un encabezado y un cuerpo. El encabezado muestra siempre el método utilizado, la URI y el protocolo en la primera línea.

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

A esto le sigue la respuesta del servidor. Esta incluye el código de estado de la consulta. El cuerpo sigue al encabezado con una línea vacía.

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

<html>Hallo Welt</html>

Códigos De Estado

Los códigos de estado están divididos en grupos. Los grupos se definen por el primer dígito. Además, después del número viene el significado en texto claro. Aquí algunos ejemplos:

Estado Descripción
200 OK La solicitud fue exitosa.
301 Found Redirección a la página real. Como Antcas Control sigue los enlaces, esta respuesta generalmente se oculta.
404 Not Found La página especificada no fue encontrada.
500 Internal Server Error Ha ocurrido un error del servidor.

Métodos

Los métodos GET y POST se utilizan con más frecuencia.

Método Descripción
GET La consulta GET es la consulta estándar. Esta no admite contenido.
POST La consulta POST envía un contenido al servidor. El contenido también puede estar vacío. La ventaja aquí es que el contenido no tiene límite de longitud. En una solicitud GET solo se pueden transmitir una cantidad determinada de datos.
PUT PUT se utiliza por las interfaces para intercambiar información.
DELETE Junto con PUT, sirve para eliminar datos.
(otros) Otros métodos HTTP también son admitidos, pero requieren una configuración correspondiente.

Autenticación

La mayoría de las autenticaciones se realizan en el encabezado. Sin embargo, también hay solicitudes que están definidas en la consulta o el contenido.

Puede ser necesario crear una sesión antes de la consulta real. La sesión se establece luego como encabezado Set-Cookie. Esta cookie debe ser devuelta nuevamente. El contenido de las cookies es sensible a mayúsculas y minúsculas, lo que significa que el contenido debe transmitirse uno a uno. Aquí un ejemplo simplificado:

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

Respuesta del servidor:

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

Ahora, la cookie puede ser utilizada nuevamente en la siguiente consulta:

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

Consejos

En la consola del desarrollador del navegador, se puede evaluar y probar la consulta bajo Red. Además, a veces es recomendable copiar o ver el encabezado.

Configuración

En Antcas Control, se crea una interfaz HTTP con una puerta de enlace. La puerta de enlace se configura como cliente HTTP. Aquí se ingresan la dirección de destino y el puerto (requerido) en consecuencia. Luego, en la estructura, se configura la consulta. Para esto, se ingresa la URL como variable bajo Comunicación.

Consulta Simple

Para crear una consulta simple, se selecciona cualquier tipo de datos. Este es preferiblemente una cadena de caracteres (string). Si ocurre un cambio de valor en la salida, ya se realiza una consulta. El valor se utiliza entonces directamente como consulta.

Consulta Compleja

Una consulta más compleja se crea utilizando el bloque de funciones HTTP_REQUEST. Para esto, el tipo de datos de la comunicación debe establecerse en raw. La respuesta puede evaluarse luego mediante el bloque de funciones HTTP_RESPONSE. La ID de la consulta debe vincularse necesariamente para asignar correctamente la respuesta a la solicitud.

Ejemplo

En este ejemplo, los datos se envían a un servidor utilizando el método GET y se evalúa la respuesta. La URL completa es la siguiente:

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

Para que los datos puedan ser recogidos o enviados por un servidor, se utiliza el siguiente ejemplo:

Nota: El ejemplo no muestra cómo debe desencadenarse la solicitud. Esta se desencadena con un flanco positivo en la entrada SET. Para evitar una consulta no deseada, la entrada DIS debe establecerse en TRUE.

La configuración de la interfaz se configura de la siguiente manera: