Недавно я наткнулся на встроенную библиотеку веб-сервера mongoose, которую планирую использовать для проекта. Однако, только потратив много времени на Google и Stack Overflow, я смог получить базовый пример «Привет, мир», работающий на языке Си.
Теперь, когда я не могу найти какие-либо онлайн-учебники или существующие вопросы о переполнении стека о своих сомнениях, я хотел бы задать их здесь. У меня есть следующие вопросы по использованию сервера Mongoose:
Обычно на более популярных серверах, таких как Apache, когда пользователь вызывает «localhost / help.text», он отображает «help.txt» в браузере. Тем не менее, во встроенной версии Mongoose, как узнать, что запросил пользователь, чтобы я мог передать этот конкретный файл (или необработанные данные в моем случае) в зависимости от того, что запросил пользователь?
Из примеров я смог узнать, как необработанные данные отправляются в браузер клиента, но что, если я хочу отправить файл.
Скажем, например, я отправляю HTML-файл, все ли связанные файлы тоже отправлены?
Обычно, когда браузер обнаруживает CSS и javascript-файлы, он отправляет серверу другой запрос на эти файлы, а затем сервер отправляет обратно этот файл. Однако недавно я столкнулся с этим вопросом, и он меня немного смущает (хотя я не пробовал то, что говорит): Отобразить HTML и передать данные с HTML на сервер Mongoose
Я посетил приведенный на сайте пример загрузки файла Mongoose, но я не мог понять, что происходит.
Это некоторые основные функции, которыми обладает сервер, и, возможно, из-за нехватки хороших учебников я не могу найти решение своей проблемы, хотя это может быть довольно тривиально.
С другой стороны, я хотел бы узнать больше о возможностях встроенного сервера Mongoose и о том, как их можно использовать.
Извините, если этот вопрос кажется очень простым, но из обзоров, которые я прочитал, и из того, что написано на сайте Mongoose, я думаю, что mongoose — отличный встроенный веб-сервер, если можно найти только немного больше документации по нему.
Спасибо.
Ответ в примере, https://github.com/cesanta/mongoose/blob/master/examples/hello.c Вся информация в struct mg_connection
Структура передана обратному вызову.
Вы не должны делать это напрямую. Просто ответьте с помощью HTML-страницы, и браузер сам запросит все необходимые файлы, отправив отдельный запрос для каждого файла.
Да, вы можете загружать файлы. Есть пример https://github.com/cesanta/mongoose/blob/master/examples/upload.c о том, как это сделать.
Других решений пока нет …