In <14055.55466.845087.413350@xxxxxxxxxxxx> Artem Chuprina (ran@xxxxxxxxx) wrote:
>>>>>> On Thu, 11 Mar 1999 17:47:53 +0300 (MSK), Victor B Wagner <vitus@xxxxxx> said:
>>> Народ, кто читал стандарты, скажите, в POST при multipart/form-data все
>>> обязаны заканчивать строку \r\n, или не столь обязательно, и кто-то
>>> имеет право сказать просто \n? Не хотелось бы напороться. Браузер, не
>>> соответствующий стандарту -- проблемы юзера, а вот соответствующий --
>>> мои...
VBW>> А тебе надо руками разбирать multipart/form-data?
VBW>> Я подозреваю, что автор CGI.pm стандарты читал и знает это лучше нас.
AC> Во-первых, CGI, кажется, не умеет multipart/form-data,
Что за поклепы ? Он умеет multipart/form-data уже больше двух лет. Чем я
и пользовался неоднократно.
AC> во-вторых, что более серьезно, меня совершенно не устраивает его
AC> функциональность, и потому я им не пользуюсь.
Гм. А что в нем так уж криво ?
AC> Поднимать его ради разбора multipart/form-data, если он ее
AC> умеет -- нафиг, нафиг.
Мы лучше свой велосипед построим ! "Национальная гордость великороссов" ?
VBW>> Вообще, написать код, который понимает все три вида концов строк -
VBW>> несложно,
AC> Но длинно.
RFC1867 ссылается на MIME, где все строки должны кончаться на CRLF. Соблюдают
ли все browser'ы это требование -- бог весть... То, что MS IE стандарты не
соблюдает (и посылает-таки \n -- сам на это нарывался :-) -- это уже как бы
добрая традиция, а вот есть ли кто-нибудь еще -- не знаю...
VBW>> а поля типа textarea и file все равно должны Content-Length
VBW>> иметь.
Кто сказал ? В RFC1867 про это ничего нет. Говорится про то, что для
ВСЕГО этого Content-Length ЖЕЛАТЕЛЬНО указать, но даже и этого не требуется...
AC> Знаешь, ни нетшкаф, ни lynx (последний только применительно к textarea,
AC> ибо не умеет <input type=file>) об этом не знают. Есть общее
AC> Content-Length на всю форму и boundary. Мои эксперименты с нетшкафом и
AC> линксом показали, что оба отдают \r\n в концах строк. Lynx еще говорит
AC> Content-type каждому полю, нетшкаф и этого не делает.
Он и не обязан :-) Зато ты обязан склеивать строки, разбираться с commenets
и quoted-strings (RFC2045, Appendix A; RFC822, 3.4.8, 3.4.3 и 3.4.5)...
А есть еще ошибки Netscape'а (он неправ, забывая обрабатывать кавычки в
именах файлов, но жаловаться-то будут тебе :-) и MS IE (MS IE для Mac'а
забывает добавлять "--" к boundary :-)
В общем изобретение велосипеда -- вещь похвальная, но хлопотная...
=============================================================================
= Apache-Talk@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.