Зависит от SDK и использованных в ней либ. Влиять на это почти нет возможностей.
Самому HTTP-Web требуется только буфер на строку приема и передачи. Если принять ограничение в 512 байт, то получаем 1 килобайт на время активности (обработки запроса-ответа) и структуру управления соединением (на время соединения). Если соединение обслуживается одно - то это всё. Если 5-ть, то к 6 кило
Всё остальное буферизирует LwIP.
- Поддержка HTTP, AJAX (с коллбеками на C функции), 5 одновременных коннектов, желательно наличие фичи авторизации и работы с файлами.
Авторизация - это простое base64encode/base64decode и поиск в строке запроса указания пароля...
AJAX подразумевает передачу переменных к Web в GET/POST, а так-же в куки и мультидата. Вам все варианты надо? Никакого парсинга в выдаваемых файлах AJAX не подразумевает. Это уже SSI или PHP или ...
- Простое и юзабельное API.
Это есть в самом SDK любого MCU.
--------
Если вы посмотрите на пример
mongoose/user_main.c at master · cesanta/mongoose · GitHub
То увидите, что никакого Web он для ESP8266 не содержит. Только простой socket с нашлепкой и разговор о web в Mongoose OS не идет. Приделали события открытия и закрытия socket-а - на этом всё.
В Arduino IDE и то более развитый сервис для примитивного подобия web.
--------
По поводу файловой системы.
Обычно, все дети, используют SPIFFS. Но у него проблемы при большой дефрагментации и открытых одновременно нескольких файлах - открытие файла занимает более секунды на ESP8266 и не годится для web и тем более AJAX, т.к. AJAX ориентировано на интерактивную работу с пользователем, а не с машиной которая может и подождать несколько секунд до открытия файла...
Либы SD с FAT (без 32
) на ESP ещё тормознее.
--------
Берете проект
ESPHTTPD - в нем есть всё что вы описали и ничего более лишнего.