HTTP-klient

HTTP, Hypertext Transfer Protocol, er en applikationsprotokol. Den sender forespørgsler og svar oven på et netværk, hvor IP sørger for adressering. Netværksforbindelsen kan være WiFi eller en anden teknologi; her fokuserer vi på HTTP-laget og venter med andre netværkstyper.

Byte-rate: En HTTP-klient har ikke en fast hastighed i byte/s. Den begrænses af forbindelsen nedenunder og bruger desuden tid på at oprette forbindelse, sende headers og vente på serverens svar.

Forløbet

  1. En netværksklient forbinder til et netværk, for eksempel via WiFi.
  2. DNS eller en kendt IP-adresse identificerer serveren.
  3. TCP-forbindelsen oprettes til port 80 for HTTP eller 443 for HTTPS.
  4. Klienten sender for eksempel en GET-forespørgsel.
  5. Serveren sender statuslinje, headers og eventuelt indhold tilbage.

Minimal HTTP GET

#include <WiFiS3.h>

WiFiClient client;
const char server[] = "example.org";

void setup() {
  Serial.begin(9600);

  if (client.connect(server, 80)) {
    client.println("GET / HTTP/1.1");
    client.println("Host: example.org");
    client.println("Connection: close");
    client.println();
  }
}

void loop() {
  while (client.available()) {
    Serial.write(client.read());
  }

  if (!client.connected()) {
    client.stop();
  }
}

Vigtige forskelle

Forrige: WiFi-klient