Я пытаюсь сделать простенький http сервер.
На данный момент разбор http запроса выглядит так.
- читаю первую строку и разбираю ее.
- читаю следующие строки пока за "\r\n" не будет "\r\n"
- если content length != 0 записываю в буфер.
Вопрос в том, если я хочу ограничить размер тела или вообще не читать тело запроса как быть ?
В голову приходит одна мысль - как только прочитал заголовки отдать Request дальше, а потом если требует приложение сохранять тело или нет.
Если вкратце то я хочу сделать простенькую библиотеку для построения http серверов.
Если это важно то я использую Си.
Zuoya, При чем тут винда? :) Мой пост был для Михаил это он про винду писал.
Лично мое мнение - написать стоящую библиотеку достаточно сложно - HTTP нынче разросся до безобразия, очень сложно все охватить. Используйте готовый HTTP парсер. Я использовал в свое время http_parser от разработчиков libuv/node.js. Так же можно взять парсер из nginxа.
Есть и готовые "легкие" и свободные веб сервера на Си, которые можно переделать под свои нужды.
Zuoya, Так и понял.
В целях улучшения навыков будет очень не плохо изучить исходники хорошо написанного http парсера и научиться его использовать в своих проектах.
Умение читать и понимать чужой код очень важно сейчас, когда по максимуму стараются использовать уже готовые библиотеки.