Comme indiqué dans http://www.boutell.com/newfaq/misc/urllength.html, chaîne de requête HTTP, ont une durée limitée. Il peut être limité par le client (Firefox, IE, ...), le serveur (Apache, IIS, ...) ou de l'équipement de réseau (pare-feu applicatif, ...).
Aujourd'hui, je fais face à ce problème avec un formulaire de recherche. Nous avons développé un formulaire de recherche avec un grand nombre de domaines, et ce formulaire est envoyé au serveur une requête GET, donc je peux mettre en signet la page de résultat.
Nous avons tellement de domaines que notre chaîne de requête est de 1100 octets de long, et nous avons un pare-feu qui tombe requêtes HTTP GET avec plus de 1024 octets. Notre administrateur système nous recommande d'utiliser POST au lieu de cela, donc il n'y aura pas de limitation.
Bien sûr, POSTE de travail, mais j'ai vraiment l'impression d'une recherche, d'un GET et pas un POST. Donc, je pense que je vais passer en revue nos noms de champ afin d'assurer la chaîne de requête n'est pas trop long, et si je ne peux pas, je vais être pragmatique et de l'utilisation POST.
Mais est-il une faille dans la conception de services RESTful? Si nous avons limité la longueur dans la requête GET, comment puis-je faire pour envoyer de gros objets pour un séjour Reposant webservice? Par exemple, si j'ai un programme qui fait des calculs basés sur un fichier, et je tiens à donner un repos d'un webservice comme ceci: http://compute.com?content=<base64 file>
. Cela ne marchera pas, parce que la chaîne de requête n'a pas la longueur illimitée.
Je suis un peu perplexe...