masterspammer (masterspammer) wrote,
masterspammer
masterspammer

413 Request entity too large

subj. это какая-то вещь в себе - отрыжка вебсервера, подавившегося излишками данных. Казалось бы всё понятно, льёшь слишком много - вот тебе статус.

Пример - есть форма "закачай файлик" и клиент (тот, который человек) по недомыслию выбрал видюшку на 2 гига. Уже при получении заголовка ясно - сейчас будет куча и нам оно не надо. Скрипт (не php, там всё по другому) УЖЕ может отказаться от получения данных - сразу (см. CONTENT_LENGTH) ясно, что их слишком много.

Первый сюрприз - а не может он отказаться (так чтоб от этого эффект был) - если данные не скачает скрипт, их скачает сам apache. Зачем? Да хотя бы для того, чтоб получить следующий запрос (на дворе 21-й век и connection как водится, keep-alive).

Второй сюрприз - если вдруг откажется, что можно не получать (я покопался в исходниках одного маленького вебсервера и внёс соответствующие изменения), то клиент (тот, который браузер) НЕ будет получать ответ, пока не отправит весь запрос.

Веб-сервер nginx умеет ограничивать получаемые данные. Однако он ведёт себя странно - сначала скачивает сколько можно, а потом обрывает соединение. Логично, то так себя вести осмысленно когда данных оказалось больше чем обещано (в CONTENT_LENGTH). Начинать скачивать заведомо избыточные данные - я не знаю, зачем это.

Получается, что реально ограничить пользователя в заливке файлов можно только разрывая соединение (иначе будет как в PHP - И данные передались И прочитать их нельзя), а ошибку, вынесенную в заголовок, выдать не получится.

Особенно циничной выглядит необходимость принять посылаемые данные для вывода ошибки 404.
Tags: cms, Обломы
Subscribe

  • (no subject)

    Вспомнился тут анекдот про давящие трусы неподходящего размера, из-за которых отрезали яйца. Две мембраны немного пострадали в дороге - не ясно,…

  • Power ON!

    Пять дней прошло - и только сегодня скрутил провода в кучу (фильтры пока лежат на полке) и соединил с усилителем. Динамикам не то, чтоб сильно плохо…

  • (no subject)

    Так получилось, что у прошлых (до PC) моих компьютеров прерываний или не было вообше или был таймер с фиксированной частотой. У Z80 (если подходить…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments