https://github.com/the0nix/caching-server
Версия проекта на 02.06.17. Изменения видны в секциях "Features" и "Installation and usage".
https://github.com/the0nix/caching-server
c epoll http server
Last synced: about 2 months ago
JSON representation
Версия проекта на 02.06.17. Изменения видны в секциях "Features" и "Installation and usage".
- Host: GitHub
- URL: https://github.com/the0nix/caching-server
- Owner: The0nix
- Created: 2016-11-01T12:19:37.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-06-02T17:24:54.000Z (about 9 years ago)
- Last Synced: 2025-10-06T22:04:44.201Z (9 months ago)
- Topics: c, epoll, http, server
- Language: C++
- Homepage:
- Size: 156 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Проект "Кэширующий веб-сервер".
### Таболов Тамерлан
### Группа БПМИ154-1
* [Отчёт](#report)
* [Описание актуальности решаемой задачи](#description)
* [Используемые технологии](#technologies)
* [Примерный план](#plan)
* [Installation and usage](#usage)
# Отчёт
Отчёт к КТ2 можно найти по ссылке: [отчёт](https://yadi.sk/i/jfhp_2UV3GGAS5)
# Описание актуальности решаемой задачи
Проект является учебным и потому не претендует на выход в релиз. На данный момент рынок веб-серверов практически полностью окуппирован серверами *Apache* и *nginx*, из которых второй намного ближе к теме проекта, так как так же относится к разряду кэширующих веб-серверов.
# Технологии
В проекте будут использоваться следующие технологии:
* Технологии стандартной библиотеки языка C, в том числе низкоуровневые технологии для работы с сокетами.
* Технологии ядра **Linux**.
* Протокол **HTTP**
* **Epoll** — для предотвращения блокировки потока во время соединения с клиентом и как гораздо менее ресурсоёмкая альтернатива созданию нескольких процессов.
На данный момент реализовано подключение клиентов, парсинг HTTP запросов, выдача файлов по запросам с использованием технологии Epoll, обработка ошибочных запросов и запросов к несуществующим файлам, проксирование.
$ git clone https://github.com/The0nix/Caching-Server.git
$ cd Caching-Server
$ mkdir bin; cd bin
$ cmake ../
$ make
$ ./caser -p 8080 # launch in default mode
$ ./caser -p 8080 -a http://pikabu.ru # launch in proxy mode
В папку bin необходимо поместить файлы сайта. Например: `echo ‘
Hello, world
’ > index.html`.
Для доступа к серверу можно воспользоваться браузером, обратившись к нужному адресу (по умолчанию: `localhost:/`) или, например, утилитой *curl*: `curl localhost:/`.
Для отключения сервера используется комбинация клавиш ``
### Options:
* `-d` — debug info
* `-p port` — specify port
* `-h` — help
* `-a service://host` — proxy to `host` via `service`