4.5.1. GET
4.5.1. GET
GET ist die am häufigsten verwendete Methode in HTTP. Sie ist als sowohl sicher als auch idempotent definiert, was bedeutet, dass eine GET-Anfrage keine Nebenwirkungen auf den Zustand des Servers haben sollte und dass mehrere identische GET-Anfragen dieselbe Wirkung haben sollten wie eine einzelne Anfrage.
Insbesondere müssen sich Anwendungen der verschiedenen Arten bewusst sein, wie GET-Anfragen neben einer expliziten Anfrage eines Benutzers generiert werden können:
-
Vorabruf: Benutzeragenten können eine URL abrufen, bevor der Benutzer sie explizit anfordert, um die wahrgenommene Leistung zu verbessern.
-
Crawling: Suchmaschinen und ähnliche Tools werden URLs crawlen, um sie zu indexieren.
-
Überwachung: Verschiedene Tools können URLs regelmäßig abrufen, um auf Änderungen oder Verfügbarkeit zu prüfen.
Folglich DÜRFEN Anwendungen, die GET verwenden, es NICHT verwenden, um Änderungen am Serverzustand auszulösen. Wenn eine Anwendung den Zustand ändern muss, SOLLTE sie eine andere Methode wie POST verwenden.
Allerdings ist es zulässig, dass GET Nebenwirkungen hat, die den Ressourcenzustand nicht beeinflussen, wie z. B. Protokollierung.
Schließlich ist zu beachten, dass die Query-Komponente einer URL häufig verwendet wird, um identifizierende Informationen zu übertragen. Obwohl dies eine gängige und nützliche Praxis ist, hat sie mehrere Nachteile:
-
GET-Anfragen mit Query-Strings werden seltener gecacht als solche ohne.
-
Query-Strings sind im Browser-Verlauf und in Protokollen sichtbar.
-
Einige Proxies und Server können die Länge von URLs begrenzen.
Anwendungen, die GET mit Query-Strings verwenden, müssen sich dieser Probleme bewusst sein.