Как указано в 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>
. Это не сработает, потому что строка запроса не имеет неограниченной длины.
Я немного озадачен ...