Sicherheit, Caching und saubere URLs: Wie das QUERY-Verb das Design von REST-APIs verändert

Nach mehr als fünfzehn Jahren architektonischer Kompromisse unternimmt die IETF nun endlich einen formellen Schritt, um eine der historischen Lücken von HTTP zu schließen: die sichere und effiziente Verarbeitung komplexer Suchanfragen.
Mit der Einführung der neuen HTTP-QUERY-Methode müssen komplexe Anfragen und Filter nicht mehr in die URL gepackt oder über eine nicht sichere Methode wie POST übertragen werden.
Die HTTP-QUERY-Methode ist der erste von der IETF verabschiedete Standard seit PATCH, das bereits 2010 eingeführt wurde. Obwohl sie noch weit von einer flächendeckenden Implementierung entfernt ist, verspricht die QUERY-Methode, eines der ältesten Dilemmata der REST-Architektur zu lösen: Wie lassen sich komplexe Suchanfragen oder Filter senden, ohne gegen die Regeln der HTTP-Standards zu verstoßen?
Bis heute mussten erweiterte Suchanfragen mit Kompromissen umgesetzt werden: Weder GET noch POST sind hierfür eine ideale Lösung.
Die GET-Methode sieht vor, dass Daten über Parameter in der URL übertragen werden (die zudem Längenbeschränkungen unterliegt). Werden Suchparameter jedoch in die URL eingefügt, besteht das Risiko, dass sensible Daten in den Server-Logs offengelegt werden: Wird beispielsweise nach einem bestimmten Vor- und Nachnamen gefiltert, wird dieser in den Logs sichtbar. Die Notwendigkeit, die URL zu verwenden, macht es außerdem unmöglich, komplexe Abfragen wie SQL-Abfragen oder Suchen mit erweiterten Filtern auszuführen.
POST hingegen löst die Platzprobleme, indem die Abfrage im Body übertragen wird, ist aber keine sichere (safe) Methode. POST ist dafür vorgesehen, Daten zu erstellen oder zu ändern, also Daten auf dem Server zu verändern. Daher gilt POST als nicht idempotent: Das mehrfache Senden derselben Anfrage mit POST führt nicht immer zum gleichen Ergebnis (wie es beispielsweise bei GET oder PUT der Fall ist).
Die neue HTTP-QUERY-Methode löst dieses Problem, indem sie zwei grundlegende Eigenschaften miteinander verbindet: Erstens überträgt sie die Parameter im Body der Anfrage, ohne sie wie bei POST in der URL offenzulegen. Zweitens handelt es sich um eine idempotente und cachefähige Methode wie bei GET.
Zusammengefasst gilt für die QUERY-Methode:
QUERY, das in der RFC 10008 beschrieben wird, die von der IETF im Juni 2026 veröffentlicht wurde, löst somit eine Inkonsistenz, mit der Entwickler seit Jahren konfrontiert sind: Die Methode verbindet die Sicherheit und Idempotenz von GET mit der strukturellen Möglichkeit, ein sehr detailliertes Payload im Body der Anfrage zu übertragen, wie es bei POST der Fall ist.
Gemäß den in der RFC 10008 festgelegten Spezifikationen ist bei einer QUERY-Anfrage mit einem Body auch der Content-Type zwingend erforderlich. Der Body kann völlig unterschiedliche Formate enthalten, aber der Server und die Netzwerkkomponenten (wie Proxies und CDNs) müssen genau wissen, wie er interpretiert werden soll, bevor er verarbeitet oder im Cache gespeichert wird.
Der neue Standard führt zu diesem Zweck einen „Accept-Query“-Response-Header ein, der dem Client mitteilt, welche Abfrageformate der Server im Body einer Anfrage akzeptieren und verarbeiten kann.
Die RFC 10008 führt außerdem die entsprechenden Fehlermeldungen ein:
Mit einer flächendeckenden Einführung der QUERY-Methode wird voraussichtlich zwischen 2027 und 2028 gerechnet. Bevor das neue Verb zu einem konkreten Standard im täglichen Betrieb wird, muss sich das gesamte Software-Ökosystem anpassen: Browser, CDNs und Server-Frameworks müssen ihre Bibliotheken aktualisieren, um die neue Methode korrekt zu erkennen und zu verarbeiten.
Darüber hinaus müssen noch potenzielle kritische Punkte gelöst werden, die eine Anpassung der Netzwerksicherheitssysteme erfordern:
In jedem Fall ist der Weg zur Implementierung der QUERY-Methode nun vorgezeichnet. Von nun an wird das HTTP-Protokoll komplexe Anfragen ermöglichen, ohne Ressourcen zu verändern, indem es die Flexibilität von POST mit den Garantien von GET hinsichtlich Lesbarkeit und Reproduzierbarkeit verbindet.