Як зазначено в http://www.boutell.com/newfaq/misc/urllength.html , рядок запитів HTTP має обмежену довжину. Це може бути обмежено клієнтом (Firefox, IE, ...), сервером (Apache, IIS, ...) або мережевим обладнанням (додатковий брандмауер, ...).
Сьогодні я стикаюся з цією проблемою за допомогою форми пошуку. Ми розробили форму пошуку з великою кількістю полів, і ця форма надсилається на сервер як запит GET, тому я можу зробити закладку на результуючій сторінці.
У нас так багато полів, що наш рядок запиту має довжину 1100 байт, і у нас є брандмауер, який видаляє HTTP-запити GET із понад 1024 байтами. Наш системний адміністратор рекомендує нам використовувати POST замість цього, щоб не було обмежень.
Звичайно, POST буде працювати, але я справді відчуваю пошук як GET, а не POST. Тому я думаю, що я перегляну назви полів, щоб переконатися, що рядок запиту не є занадто довгим, і якщо я не зможу, я буду прагматичним і використовуватиму POST.
Але чи є недолік у розробці послуг RESTful? Якщо у запиті GET обмежена довжина, як я можу надіслати великі об’єкти до веб-служби RESTful? Наприклад, якщо у мене є програма , яка робить розрахунки , засновані на файлі, і я хочу , щоб забезпечити RESTful веб - сервісу , як це: http://compute.com?content=<base64 file>
. Це не буде працювати, оскільки рядок запиту не має необмеженої довжини.
Я трохи спантеличений ...