HTTP Content-Lenght

Тема в разделе "WASM.NETWORKS", создана пользователем Aspire, 1 апр 2009.

  1. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    Доброго времени суток, форумчане.
    Подскажите, как правильно расчитать Content-Lenght для POST-запроса, если Content-Type == multipart/form-data.
    Вот пример валидного запроса http://www.everfall.com/paste/id.php?gym8bu3i5zv7.
    Значение Content-Lenght в нем равно 4727 (68-я строка). Предположил, что это размер пакета, минус совокупный размер делителей (boundary)... примерно то, но не то. Нужно точно, иначе получаю Bad Request.
     
  2. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    Странно, я всегда считал, что Content-Length – размер уже закодированных данных (то есть считая все разделители, urlencode и т. п.) после заголовков (после пустой строки).
     
  3. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    iZzz32 Ща проверю... Тоже нет. Близко, но нет. Если в примере посчитать данные после пустой строки, то получится 4723. Где еще 4 байта?
     
  4. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    \r\n\r\n
     
  5. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    osrootd То есть, пустую строку после заголовка тоже считать?
     
  6. dendi

    dendi New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2007
    Сообщения:
    233
    их не считают
     
  7. integer

    integer New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2007
    Сообщения:
    62
    посчитал и у меня получилось 4727.
    и я кажется понял в чем твоя ошибка.
    у тебя после пакета с заголовком идет 4 пакета с данными.
    и в каждом из этих 4х пакетов ты не учитываешь самый первый символ (который со смещением ноль).
    тоесть ты считаешь ноль, раз, два, три... а нужно раз, два, три...
    (символ с нулевым смещением это раз, со смещением один это два, со смещением два это три)
    медитируй.
     
  8. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    ой... лошара..ми кантарэ...

    Спасибо, integer.