NGIN-XS is a simple, lightweight, and fast web server written in C++.
🍀 sokim | 🌙 heehkim | 🌰 sarchoi
./
├── includes/ # header files
├── cgi-bin/ # cgi files
├── conf/ # configuration files
├── error_pages/ # html files for error page
├── html/ # web root
├── srcs/ # source files
│ ├── autoindex/ # autoindex
│ └── config/ # configuration file
├── tester # client program for test
└── Makefile
$ git clone https://github.com/srngch/ngin-xs.git
$ make
$ ./webserv [configuration file]
Type [http://servername:port] in the address bar
For example [http://localhost:80]
- Created the repository
- Added the README.md file
- Specified Convention
- Studied concept of multiplexing and socket programming
- Made simple server-client programs: code
- Learned usage of socket programming functions
socket
,bind
,listen
,accept
,send
,recv
,connect
htons
,htonl
,inet_addr
- header:
<sys/socket.h>
,<netinet/in.h>
,<netinet/ip.h>
- Made echo server-client programs: code
- Made a multiplexing server program: code
- Learned usage of multiplexing function
poll
- Fixed bug when multiple clients request connection: code
- Close socket and initialize fd & revents when POLLHUP event occurs
- Removed while loop in recv()
- Fixed bug regarding to EADDRINUSE: code
- Added close(listen_socket) when error occurs
- Added setsockopt() to reuse port already in use
- Specified classes
- Member variables
- Member functions
- Implemented autoindex: Issue, PR
- Implemented POST method: Issue, PR
- Changed header data type: Issue, PR
- [WIP] Parse configuration file: Issue
- Implemented directory path redirection: Issue, PR
- [WIP] Get required values from config class: Issue
- [WIP] Implement python-cgi: Issue
- Implemented python-cgi: Issue, PR
- Updated function to set response header: Issue, PR
- [WIP] Get required values from config class: Issue
- Implemented CUI client: Issue, PR
- Added multipart/form-data file upload to python-cgi: Issue, PR
- Fixed infinite validation when request header is invalid: Issue, PR
- Fixed CRLF issue when response binary file: Issue, PR
- [WIP] Get required values from config class: Issue
- Implemented handling Connection header: Issue, PR
- Implemented Limiting client max body size: Issue, PR
- Refactored exception: Issue, PR
- Get required values from config class: Issue, PR
- Implemented web client: Issue, PR
- Implemented getting required values from config class: Issue, PR
- [WIP] Implement running multiple servers: Issue
- [WIP] Apply Config class: Issue
- [WIP] Try tester program given by subject: Issue
- [WIP😭] Try tester program given by subject: Issue