https://github.com/composerboyV/Web_Study
1. 프로젝트 개요
🌐 Webserv – HTTP/1.1 웹서버 구현 (42 Webserv 과제)
C++98로 HTTP/1.1 웹서버를 처음부터 구현하고, nginx 스타일 설정 파일 기반의 다중 서버 블록/가상호스트, 정적 파일 서빙, 업로드·다운로드, CGI(Python/PHP) 실행까지 포함한 웹서버를 완성했습니다. 42Gyeongsan
2. 역할 (부팀장 / 서버 아키텍처·CGI 담당)
- 팀 내 코드 리뷰를 주도하며 HTTP 처리 흐름 전반에서 발생하는 버그와 구조적 문제를 식별·수정
- CGI 아키텍처 설계 및 구현을 담당하여 Python·PHP CGI 실행 흐름(fork/exec/pipe, 환경 변수 설정, 결과 수집)을 안정화
- HTTP 메소드(GET·POST·DELETE) 요청이 소켓에서 수신되어 파싱·라우팅·처리되는 전체 흐름을 직접 학습하고 구현
- 요청 수신 초기 단계에서 token 기반 파싱 구조를 설계하여 Request Line, Header, Body를 단계적으로 분리·처리하는 서버 처리 구조의 기준을 수립
- 설정 파일 기반 정책(methods, upload, cgi, return 등)이 실제 요청 처리 로직에 일관되게 반영되도록 구조를 정리하고 통합
3. 기술 스택
- Language: C++98
- OS/Network: Linux, BSD Socket, non-blocking I/O, epoll
- System: fork/exec, pipe, signal (CGI 실행/입출력 전달)
- Web/Protocol: HTTP/1.1 요청/응답, 상태 코드, MIME type 처리
- Tooling: Makefile, Git, curl(테스트)
4. 문제 및 문제 해결