Здравствуйте Lloyd, Вы писали:
L>Здравствуйте Арещенко Максим Николаевич, Вы писали:
АМН>>передаваемых в форме?
L>Ограничение есть.
L>Для get где-то порядка 230 символов. Для post'а точной цифры я не нашел, но ограничение есть. Самому пришлось как-то столкнуться.
Читаем RFC 2616:
The HTTP protocol does not place any a priori limit on the length of
a URI. Servers MUST be able to handle the URI of any resource they
serve, and SHOULD be able to handle URIs of unbounded length if they
provide GET-based forms that could generate such URIs. A server
SHOULD return 414 (Request-URI Too Long) status if a URI is longer
than the server can handle (see section 10.4.15).
Note: Servers ought to be cautious about depending on URI lengths
above 255 bytes, because some older client or proxy
implementations might not properly support these lengths.
Т.е. стандартом никаких ограничений на длину URI не предписывается. А вот конкретные сервера могут не понимать длинных GET'ов. Кроме того, старые клиенты или прокси могут резать URI до 255 байтов.
Здравствуйте Lexey, Вы писали:
L>Т.е. стандартом никаких ограничений на длину URI не предписывается. А вот конкретные сервера могут не понимать длинных GET'ов. Кроме того, старые клиенты или прокси могут резать URI до 255 байтов.
Дело еще немного интереснее, на самом деле :-)
Не только от серверов все это зависит, но и от клиента тоже :-)
Скажем, IE передает методом get только порядка 2К текста. В наскоро состряпанном тесте примерно 3000 символов на путь ( адрес + QueryString ).
Netscape же спокойно у меня передал 30 000 символов.
Здравствуйте Konstantin Sokolovskiy, Вы писали:
KS>Здравствуйте Lexey, Вы писали:
L>>Т.е. стандартом никаких ограничений на длину URI не предписывается. А вот конкретные сервера могут не понимать длинных GET'ов. Кроме того, старые клиенты или прокси могут резать URI до 255 байтов.
KS>Дело еще немного интереснее, на самом деле KS>Не только от серверов все это зависит, но и от клиента тоже KS>Скажем, IE передает методом get только порядка 2К текста. В наскоро состряпанном тесте примерно 3000 символов на путь ( адрес + QueryString ).
Может быть, хотя слабо верится. Не должен уважающий себя клиент иметь ограничение на длину URI меньше 4kb.
Предлагаю попробовать
А еще можете сделать следующее: в address bar ввести адрес с соответствующим левым get-параметром. Так вот, эта строчка имеет некий максимум длины вводимого текста. Именно те самые 3 000 символов.
Здравствуйте Konstantin Sokolovskiy, Вы писали:
KS>Здравствуйте Lexey, Вы писали:
L>>Может быть, хотя слабо верится. Не должен уважающий себя клиент иметь ограничение на длину URI меньше 4kb.
KS>И тем не менее.
Здравствуйте Арещенко Максим Николаевич, Вы писали:
АМН>передаваемых в форме?
Столкнулся с ситуацией, при post передавалось hidden поле, в значении которого передавалась xml-строка очень большой длины. Так вот IIS при обращении Request.Form("field"), выдавал Stack Overflow
Все вылечилось когда происходил post multipart/form-data
вот тут уж точно не должно быть ограничений
Здравствуйте andik, Вы писали:
A>Столкнулся с ситуацией, при post передавалось hidden поле, в значении которого передавалась xml-строка очень большой длины. Так вот IIS при обращении Request.Form("field"), выдавал Stack Overflow
Совершенно верно.
IIS не умеет (точнее, не умел) работать с формой, если размер одного поля превышает 100К. Это описано в MSDN (Q273482).
Относилось это точно к версии 4.0. Насчет 5.0 сейчас не помню, в 5.1 этой проблемы уже нет. Думаю, что в 6.0 тоже.