Skip to content

srngch/ngin-xs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

NGIN-XS

NGIN-XS is a simple, lightweight, and fast web server written in C++.


๐Ÿš€ Contributers

๐Ÿ€ sokim | ๐ŸŒ™ heehkim | ๐ŸŒฐ sarchoi

๐Ÿ”— ๋…ธ์…˜ ์ •๋ฆฌ


๐Ÿšง File Structure

./
โ”œโ”€โ”€ 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

โ“ Usage

๐Ÿ–๏ธ Clone

$ git clone https://github.com/srngch/ngin-xs.git

๐Ÿ–๏ธ Compile

$ make

๐Ÿ–๏ธ Execute

$ ./webserv [configuration file]

๐Ÿ–๏ธ Connect

Type [http://servername:port] in the address bar   
For example [http://localhost:80]

๐Ÿ‘ญ Logs

2022-09-21

  • Created the repository
  • Added the README.md file
  • Specified Convention
  • Studied concept of multiplexing and socket programming

2022-09-25

  • 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>

2022-09-26

  • Made echo server-client programs: code
  • Made a multiplexing server program: code
  • Learned usage of multiplexing function poll

2022-09-28

  • 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

2022-09-29

  • Made a simple server program: Issue, PR

2022-10-01

  • Made a request syntax error exception: Issue, PR
  • Implemented Response class: Issue, PR

2022-10-02

  • Implemented GET method for static files: Issue, PR
  • Implemented request validation: Issue, PR

2022-10-03

  • Implemented calling CGI program with GET: Issue, PR

2022-10-10

  • Implemented autoindex: Issue, PR
  • Implemented POST method: Issue, PR
  • Changed header data type: Issue, PR
  • [WIP] Parse configuration file: Issue

2022-10-12

  • Implemented DELETE method: Issue, PR
  • [WIP] Parse configuration file: Issue

2022-10-13

  • Handled chunked request: Issue, PR
  • Parse configuration file: Issue

2022-10-14

  • Parsed configuration file: Issue, PR
  • [WIP] Implement directory path redirection: Issue

2022-10-15

  • Implemented directory path redirection: Issue, PR
  • [WIP] Get required values from config class: Issue
  • [WIP] Implement python-cgi: Issue

2022-10-17

  • [WIP] Implement python-cgi: Issue
  • [WIP] Get required values from config class: Issue

2022-10-18

  • Implemented python-cgi: Issue, PR
  • Updated function to set response header: Issue, PR
  • [WIP] Get required values from config class: Issue

2022-10-19

  • 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

2022-10-20

  • 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

2022-10-21

  • Implemented web client: Issue, PR
  • Implemented getting required values from config class: Issue, PR
  • [WIP] Implement running multiple servers: Issue

2022-10-22

  • Implemented running multiple servers: Issue, PR

2022-10-23

  • [WIP] Apply Config class: Issue

2022-10-24

  • Implemented applying Config class: Issue, PR
  • [WIP] Try tester program given by subject: Issue

2022-10-25

  • [WIP] Try tester program given by subject: Issue

2022-10-26

  • [WIP๐Ÿ˜ญ] Try tester program given by subject: Issue

2022-10-27

About

Extra small NGINX

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •