WebServ é um servidor web escrito em C++, inspirado no funcionamento do Nginx. Este projeto tem como objetivo desenvolver um servidor HTTP básico capaz de interpretar requisições HTTP e retornar respostas adequadas.
- Suporte a CGI.
- Manipulação de múltiplas conexões.
- Configuração de rotas e métodos HTTP.
- Configuração de limites de corpo do cliente e redirecionamentos.
- src/: Contém os arquivos-fonte principais (
.cpp) do servidor. - includes/: Contém os arquivos de cabeçalho (
.hpp) usados no projeto. - cgi-bin/: Diretório onde os scripts CGI são armazenados.
- serverRoot/: Diretório raiz default usado pelo servidor para servir arquivos.
- logs/: Diretório para armazenar os logs gerados pelo servidor.
- config.conf: Arquivo de configuração do servidor.
- Makefile: Arquivo para compilar, limpar e rodar o projeto.
- test/: Contém testes automatizados para validação das funcionalidades do servidor.
Certifique-se de ter o compilador c++ (compatível com -std=c++98) e valgrind (opcional) instalados.
-
Compilar o Projeto
make
-
Executar o Servidor
make run
O arquivo config.conf permite definir os parâmetros do servidor, como porta, diretório raiz, e métodos aceitos. Ajuste este arquivo conforme suas necessidades antes de iniciar o servidor.
Veja o fluxo geral do programa.
Veja o diagrama de classes para uma visão geral da arquitetura do projeto.
Os logs são armazenados no diretório logs/ e podem ser resetados com o comando make resetLogs.
Este projeto é distribuído sob a licença MIT.