Китайский | Английский
Веб-сервер CGI, который вдохновлен Tiny-HTTPD и расширен с помощью сторонних библиотек, LIBEV , http-parser , hashmap , log.c. Это показывает, как работает веб -сервер.
1. Установить либев и python3.
sudo apt install -y libev-dev python32. Установите исходный код.
git clone https://github.com/uncle-lv/cgi-http-server.git 3. Into Directory src и запустить, make сделать компиляцию кода.
make 4 、 Запуск сервера CGI ( port аргумента не является обязательным)
./server {port}Есть несколько URL -адресов для тестирования,
/index.html、/login.htmlи т. Д.У вас должно быть разрешение на выполнение сценариев CGI.
src
├── hashmap.c
├── hashmap.h
├── http_parser.c
├── http_parser.h
├── http_request.c
├── http_request.h
├── log.c
├── log.h
├── Makefile
├── server
└── server.c
Если вы хотите прочитать исходный код, сосредоточьтесь на http_request.* И server.c . Другие файлы являются сторонними библиотеками.
HashMap: реализация HashMap в C.
http_parser: http -запрос/анализатор ответа для C.
log.c: простая библиотека журнала, реализованная в C99.
С нетерпением жду любой проблемы или запроса от вас.
Возможно, реализовать весь HTTP/1.0 и CGI/1.1 в будущем.
Грань