Requête HTTP

Pour illustrer cet exemple, les bases de HTTP sont d'abord expliquées. Cela est important pour comprendre le fonctionnement de l'interface.

Bases

Les points suivants doivent absolument être pris en compte :

  • Lors d'une requête via HTTP, une connexion est établie par le client jusqu'à ce que la connexion soit terminée par le serveur.
  • La requête s'effectue via TCP sur le port 80 (HTTP non chiffré) et sur le port 443 (HTTPS chiffré).
  • Si le port 80 est utilisé avec http:// ou le port 443 avec https://, le port est masqué.
  • La couche de connexion à partir de HTTP/1.1 est telle que la connexion reste ouverte un certain temps pour éviter le handshake de TCP. Cela n'est pas visible dans le moniteur d'Antcas. Cependant, après le timeout, la connexion est fermée par le client, c'est-à-dire par le serveur Antcas. Le timeout doit donc être suffisamment élevé.
  • Chaque requête est entièrement compatible avec les versions antérieures. Il est indifférent qu'un serveur prenne en charge HTTP/1.0, HTTP/1.1 ou HTTP/2.
  • L'en-tête est insensible à la casse. Cela signifie que la majuscule et la minuscule n'ont pas d'importance. Cependant, certains fabricants ne prennent pas soin de l'implémenter ainsi.
  • Le codage des caractères dans Antcas Control est toujours UTF-8. Si d'autres sont utilisés, ils doivent éventuellement être convertis.
  • La longueur maximale d'une URL incluse Query est de 2'083 caractères.

La structure d'une URL est la suivante :

http://server.tld/getdata?project=you%26i+project&id=25#anker
Composant Signification
http:// Définir le protocole. Antcas Control prend actuellement en charge http et https.
server.tld Définir le domaine (DNS) ou l'adresse IP du serveur de destination.
getdata C'est l'URI du serveur. Celle-ci correspond à la page de destination, comparable à un chemin.
?[...] Le ? sépare l'URL de ce qu'on appelle la requête GET, derrière laquelle suivent toutes les données de formulaire également appelées Query. La Query est toujours encodée pour remplacer les caractères non pris en charge.
#[...] Le caractère #- définit un ancrage sur une page. Cela permet de sauter (défiler) à n'importe quel endroit. Ces données ne sont pas transmises au serveur. En outre, cette zone incluse # ne doit pas être copiée dans la requête, sinon cela appellera une autre page de destination sur le serveur.

La configuration des serveurs de destination s'effectue dans le HTTP-Gateway correspondant.

Structure D'une Requête

La structure d'une requête se compose d'un en-tête et d'un corps. L'en-tête indique toujours la méthode utilisée, l'URI et le protocole dans la première ligne.

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

La réponse du serveur suit ensuite. Celle-ci contient le code d'état de la requête. Le corps suit l'en-tête avec une ligne vide.

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

<html>Bonjour le monde</html>

Codes D'État

Les codes d'état sont divisés en groupes. Les groupes sont définis par le premier chiffre. En outre, après le nombre vient la signification en texte clair. Voici quelques exemples :

État Description
200 OK La requête a réussi.
301 Found Redirection vers la page réelle. Comme Antcas Control suit les liens, cette réponse est généralement masquée.
404 Not Found La page indiquée n'a pas été trouvée.
500 Internal Server Error Une erreur serveur s'est produite.

Méthodes

Les méthodes GET et POST sont les plus utilisées.

Méthode Description
GET La requête GET est la requête standard. Celle-ci ne prend pas en charge le contenu.
POST La requête POST envoie un contenu au serveur. Le contenu peut également être vide. L'avantage ici est que le contenu n'a pas de limite de longueur. Pour une requête GET, seuls un certain nombre de données peuvent être transmises.
PUT PUT est utilisé par les interfaces pour échanger des informations.
DELETE Avec PUT, il sert à supprimer des données.
(autres) D'autres méthodes HTTP sont également prises en charge, mais nécessitent une configuration appropriée.

Authentification

La plupart des authentifications se font dans l'en-tête. Il existe cependant des requêtes qui sont définies dans la Query ou le Content.

Il peut être nécessaire de créer une session avant la requête réelle. La session est ensuite définie comme en-tête Set-Cookie. Ce cookie doit alors être transmis à nouveau. Le contenu des cookies est sensible à la casse, ce qui signifie que le contenu doit être transmis tel quel. Voici un exemple simplifié :

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

Réponse du serveur :

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

Le cookie peut maintenant être réutilisé dans la requête suivante :

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

Conseils

Dans la console de développement du navigateur, sous Réseau, la requête peut être évaluée et testée. Il est parfois judicieux de copier ou de consulter l'en-tête.

Configuration

Dans Antcas Control, une interface HTTP est créée avec un gateway. Le gateway est configuré comme client HTTP. Ici, l'adresse de destination et le port (obligatoire) sont entrés en conséquence. Ensuite, la requête est configurée dans la structure. À cet effet, l'URL est entrée sous Communication en tant que variable.

Requête Simple

Pour créer une requête simple, un type de données quelconque est choisi. Celui-ci est de préférence une chaîne de caractères (string). Si une modification de valeur se produit à la sortie, une requête est déjà effectuée. La valeur est ensuite utilisée directement comme Query.

Requête Complexe

Une requête plus complexe est créée au moyen du bloc fonctionnel HTTP_REQUEST. À cet effet, le type de données de la communication doit être défini sur raw. La réponse peut alors être évaluée au moyen du bloc fonctionnel HTTP_RESPONSE. L'ID de la requête doit absolument être liée pour attribuer correctement la réponse à la demande.

Exemple

Dans cet exemple, des données sont envoyées à un serveur au moyen de la méthode GET et la réponse est évaluée. L'URL complète est la suivante :

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

Afin que des données puissent être récupérées ou envoyées par un serveur, l'exemple suivant est utilisé :

Remarque : L'exemple ne montre pas comment la requête doit être déclenchée. Celle-ci est déclenchée par un front positif à l'entrée SET. Pour éviter une requête non souhaitée, l'entrée DIS doit être définie sur TRUE.

La configuration de l'interface est configurée comme suit :