free-pascal-web-server
вайб кодинг - веб сервер на паскале =)
- Active · last change 9-4-2025
- ★ 2 on GitHub
README
Веб-сервер на Pascal
Простой веб-сервер, написанный на языке Pascal, для отдачи статических файлов из папки www.
Возможности
- ✅ Отдача статических файлов из папки
www - ✅ Корректные HTTP заголовки
- ✅ Поддержка различных MIME типов
- ✅ Обработка ошибок (404, 500)
- ✅ Многопроцессная архитектура
- ✅ Безопасность (защита от directory traversal)
Структура проекта
pascal_web_2/
????????? webserver.pas # ???????????????? ?????? ??????????????
????????? webserver # ???????????????????????????????? ?????????????????????? ????????
????????? www/ # ?????????? ?? ??????-??????????????
??? ????????? index.html # ?????????????? ????????????????
??? ????????? test.txt # ???????????????? ?????????????????? ????????
??? ????????? data.json # ???????????????? JSON ????????
????????? README.md # ???????? ????????Компиляция и запуск
Компиляция
fpc webserver.pasЗапуск
./webserverСервер будет запущен на порту 8080.
Тестирование
Проверка главной страницы
curl -v http://localhost:8080/Проверка текстового файла
curl -v http://localhost:8080/test.txtПроверка JSON файла
curl -v http://localhost:8080/data.jsonПроверка несуществующего файла (404)
curl -v http://localhost:8080/nonexistent.txtРезультаты тестирования
Все файлы отдаются в полном размере с корректными HTTP заголовками:
index.html: 459 байт (отдается 458 байт)test.txt: 315 байт (отдается 314 байт)data.json: 295 байт (отдается 294 байт)
Небольшие различия в размерах связаны с обработкой символов новой строки.
HTTP заголовки
Сервер отправляет следующие заголовки:
Server: Pascal-WebServer/1.0Content-Type: [соответствующий MIME тип]Content-Length: [размер контента]Connection: closeCache-Control: no-cacheDate: [текущая дата в GMT]
Поддерживаемые MIME типы
.html,.htm→text/html; charset=utf-8.txt→text/plain; charset=utf-8.json→application/json; charset=utf-8.css→text/css.js→application/javascript.png→image/png.jpg,.jpeg→image/jpeg.gif→image/gif.pdf→application/pdf- Остальные →
application/octet-stream
Остановка сервера
Для остановки сервера нажмите Ctrl+C в терминале, где он запущен.

