Heim > Web-Frontend > js-Tutorial > Wie APIs unter der Haube funktionieren

Wie APIs unter der Haube funktionieren

WBOY
Freigeben: 2024-08-21 06:09:32
Original
898 Leute haben es durchsucht

APIs (Application Programming Interfaces) sind für die moderne Softwareentwicklung von grundlegender Bedeutung und ermöglichen die Kommunikation verschiedener Systeme miteinander. Aber was passiert, wenn Sie einen API-Endpunkt erreichen? Wie werden die Daten von Ihrer Clientanwendung zum Server und zurück übertragen? In diesem Artikel werden diese Prozesse entmystifiziert, indem der Weg einer API-Anfrage mithilfe visueller Hilfsmittel und zusätzlicher Erklärungen Schritt für Schritt aufgeschlüsselt wird.

1. Der Kunde stellt eine Anfrage

Stellen Sie sich vor, Sie erstellen eine Webanwendung, die Wetterdaten anzeigt. Wenn ein Benutzer auf eine Schaltfläche klickt, um das aktuelle Wetter anzuzeigen, sendet Ihre Anwendung eine Anfrage an einen API-Endpunkt, z. B. https://api.weather.com/current.

Was passiert hier?

  • HTTP-Anfrage: Der Client (Ihre Anwendung) erstellt eine HTTP-Anfrage und gibt dabei die Methode (z. B. GET, POST), die Endpunkt-URL und alle erforderlichen Header (wie Autorisierung oder Inhaltstyp) an.
  • Nutzlast: Wenn es sich um eine POST-Anfrage handelt, kann sie eine Nutzlast enthalten, z. B. ein JSON-Objekt mit Parametern (z. B. { „city“: „New York“ }).

Diese HTTP-Anfrage wird dann über das Internet an den Server gesendet, der die API hostet.

How APIs Work Under the Hood

2. DNS-Suche: Den Server finden

Bevor Ihre Anfrage den Server erreicht, muss dieser zunächst wissen, wohin er gehen soll. Hier kommt das Domain Name System (DNS) ins Spiel.

DNS-Suche: Der Browser oder die Clientanwendung nimmt die Domäne (z. B. api.weather.com) und fragt einen DNS-Server ab, um die entsprechende IP-Adresse zu finden. Diese IP-Adresse ist der tatsächliche Standort des Servers im Internet.

How APIs Work Under the Hood

3. Verbindung herstellen

Da der Client nun weiß, wo sich der Server befindet, muss er eine Verbindung herstellen.

TCP-Handshake: Der Client und der Server stellen eine Verbindung mithilfe des Transmission Control Protocol (TCP) her. Dies umfasst einen dreistufigen Prozess, der als TCP-Handshake bekannt ist:

  1. SYN: Der Client sendet eine Synchronisierungsanfrage (SYN) an den Server.
  2. SYN-ACK: Der Server bestätigt diese Anfrage und antwortet mit SYN-ACK.
  3. ACK: Der Client bestätigt die Antwort des Servers und schließt den Handshake ab.

Sobald dieser Handshake abgeschlossen ist, ist die Verbindung hergestellt und es können Daten ausgetauscht werden.

How APIs Work Under the Hood

4. Server empfängt die Anfrage

Sobald die Verbindung hergestellt ist, wird die HTTP-Anfrage an den Server übermittelt.

Serverseitige Verarbeitung:

  • Routing: Der Server empfängt die Anfrage und leitet sie basierend auf dem Endpunkt an den entsprechenden Handler weiter (z. B. /current in https://api.weather.com/current). Dies kann die Anpassung des URL-Musters an einen bestimmten Controller oder eine bestimmte Funktion beinhalten.
  • Controller-Logik: Der Controller des Servers verarbeitet die Anfrage. Dies kann das Abfragen einer Datenbank zum Abrufen von Daten, das Durchführen von Berechnungen oder Datentransformationen oder das Aufrufen anderer interner Dienste zum Abrufen zusätzlicher Informationen umfassen.
  • Authentifizierung und Autorisierung: Wenn der Endpunkt eine Authentifizierung erfordert, überprüft der Server die Anmeldeinformationen des Clients. Wenn die Anfrage beispielsweise einen API-Schlüssel oder ein Zugriffstoken enthält, prüft der Server dessen Gültigkeit und stellt sicher, dass der Client über die erforderlichen Berechtigungen für den Zugriff auf die angeforderte Ressource verfügt.

5. Antwortvorbereitung

Nach der Verarbeitung der Anfrage bereitet der Server eine Antwort vor.

Antwortobjekt: Der Server erstellt ein HTTP-Antwortobjekt, einschließlich:

  • Statuscode: Zeigt das Ergebnis der Anfrage an (z. B. 200 OK, 404 Nicht gefunden, 500 Interner Serverfehler).
  • Header: Stellen Sie Metadaten zur Antwort bereit, z. B. Content-Type (z. B. application/json) oder Set-Cookie.
  • Body: Enthält die vom Client angeforderten Daten, oft im JSON-Format (z. B. { „temperatur“: „72°F“, „condition“: „Sunny“ }).

6. Antwort zurücksenden

Der Server sendet die HTTP-Antwort über die hergestellte Verbindung an den Client zurück.

Datenübertragung: Diese Antwort wird über das Internet zurückgesendet, möglicherweise über verschiedene Router und Gateways. Es erreicht schließlich den Client, der die Antwort verarbeitet.

How APIs Work Under the Hood

7. Der Kunde empfängt und verarbeitet die Antwort

Sobald der Client die Antwort erhält, kann er die Daten verarbeiten und die Benutzeroberfläche aktualisieren.

UI-Update: In unserer Wetteranwendung übernimmt der Client die Temperaturdaten aus der Antwort und aktualisiert die Anzeige, um das aktuelle Wetter anzuzeigen.

Fehlerbehandlung: Wenn etwas schief gelaufen ist (z. B. der Server hat den Statuscode 404 oder 500 zurückgegeben), zeigt der Client möglicherweise eine Fehlermeldung an oder versucht die Anfrage erneut.

8. Verbindungsabbau

Nachdem der Datenaustausch abgeschlossen ist, wird die Verbindung zwischen Client und Server geschlossen.

TCP-Verbindungsbeendigung: Ähnlich wie beim Handshake wird die Verbindung in einem vierstufigen Prozess beendet:

  1. FIN: Der Client sendet eine Finish-Anfrage (FIN).
  2. ACK: Der Server bestätigt die FIN-Anfrage.
  3. FIN: Der Server sendet seine eigene FIN-Anfrage.
  4. ACK: Der Client bestätigt die FIN-Anfrage des Servers.

Dieses ordnungsgemäße Herunterfahren stellt sicher, dass beide Seiten die Datenübertragung abgeschlossen haben.

How APIs Work Under the Hood

Fehlerbehebung und häufige Probleme

Obwohl der API-Request-Response-Prozess unkompliziert erscheinen mag, können mehrere häufige Probleme auftreten, wie zum Beispiel:

  • Netzwerkfehler: Verbindungszeitüberschreitungen, verlorene Pakete oder andere netzwerkbezogene Probleme können dazu führen, dass die Anfrage den Server oder die Antwort den Client erreicht.
  • Authentifizierungs-/Autorisierungsfehler: Falsche oder abgelaufene API-Schlüssel, Token oder unzureichende Berechtigungen können zu Authentifizierungs- oder Autorisierungsfehlern führen.
  • Serverseitige Fehler: Auf dem Server können Probleme wie Datenbankfehler, Nichtverfügbarkeit von Ressourcen oder Fehler in der serverseitigen Logik auftreten, die zu 5xx-Statuscodes führen.
  • Clientseitige Fehler: Der Client stellt möglicherweise ungültige Anfragen, z. B. indem er falsche Parameter bereitstellt oder versucht, auf nicht vorhandene Ressourcen zuzugreifen, was zu 4xx-Statuscodes führt.

Um diese Probleme zu beheben, können Sie Tools wie Netzwerk-Sniffer, Browser-Entwicklertools und serverseitige Protokolle verwenden, um die Grundursache des Problems zu untersuchen und geeignete Maßnahmen zu seiner Lösung zu ergreifen.

Abschluss

Wenn Sie verstehen, wie eine API unter der Haube funktioniert, können Sie die Komplexität selbst einer einfachen HTTP-Anfrage besser einschätzen. Von DNS-Suchen bis hin zu TCP-Handshakes und serverseitiger Verarbeitung bis hin zu clientseitiger Verarbeitung – jedes Mal, wenn Sie einen API-Endpunkt erreichen, passiert viel.

Wenn Sie als Entwickler ein solides Verständnis dieser Konzepte haben, werden Sie nicht nur ein besserer Programmierer, sondern können auch Probleme effektiver beheben. Wenn Sie also das nächste Mal mit einer API arbeiten, denken Sie an den Weg, den Ihre Daten nehmen, und an den komplizierten Prozess, der all das möglich macht.

Das obige ist der detaillierte Inhalt vonWie APIs unter der Haube funktionieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage