Wie unter http://www.boutell.com/newfaq/misc/urllength.html angegeben , ist die Länge der HTTP-Abfragezeichenfolge begrenzt. Sie kann durch den Client (Firefox, IE, ...), den Server (Apache, IIS, ...) oder die Netzwerkausrüstung (anwendbare Firewall, ...) eingeschränkt werden.
Heute begegne ich diesem Problem mit einem Suchformular. Wir haben ein Suchformular mit vielen Feldern entwickelt. Dieses Formular wird als GET-Anforderung an den Server gesendet, damit ich die resultierende Seite mit einem Lesezeichen versehen kann.
Wir haben so viele Felder, dass unsere Abfragezeichenfolge 1100 Byte lang ist, und wir haben eine Firewall, die HTTP-GET-Anforderungen mit mehr als 1024 Byte löscht. Unser Systemadministrator empfiehlt, stattdessen POST zu verwenden, damit keine Einschränkungen bestehen.
Sicher, POST wird funktionieren, aber ich fühle eine Suche wirklich als GET und nicht als POST. Daher werde ich unsere Feldnamen überprüfen, um sicherzustellen, dass die Abfragezeichenfolge nicht zu lang ist. Wenn ich nicht kann, bin ich pragmatisch und verwende POST.
Aber gibt es einen Fehler im Design von RESTful-Diensten? Wie kann ich große Objekte an einen RESTful-Webservice senden, wenn die Länge der GET-Anforderung begrenzt ist? Wenn ich beispielsweise ein Programm habe, das Berechnungen basierend auf einer Datei durchführt, und einen RESTful-Webservice wie diesen bereitstellen möchte : http://compute.com?content=<base64 file>
. Dies funktioniert nicht, da die Abfragezeichenfolge nicht unbegrenzt lang ist.
Ich bin ein wenig verwirrt ...