|
1 | 1 | # webserv
|
2 | 2 | This is when you finally understand why a URL starts with HTTP
|
| 3 | + |
| 4 | + |
| 5 | +```mermaid |
| 6 | +flowchart TD |
| 7 | + A[Introduction to HTTP] --> B[Overview of HTTP server] |
| 8 | + B --> C[Primary function of a web server] |
| 9 | + C --> D[Request/Response model] |
| 10 | + D --> E[Role of client and server] |
| 11 | + |
| 12 | + A1[General rules] --> F[Program Stability] |
| 13 | + F --> G[No crashing or unexpected quit] |
| 14 | + F --> H[Makefile structure] |
| 15 | + F --> I[Use C++ 98 standard] |
| 16 | + F --> J[Forbidden libraries] |
| 17 | + |
| 18 | + A2[Mandatory Part] --> K[Program name: webserv] |
| 19 | + K --> L[HTTP server in C++ 98] |
| 20 | + L --> M[Command to run: ./webserv config_file] |
| 21 | + L --> N[Requirements] |
| 22 | + N --> O[Non-blocking I/O using poll or equivalent] |
| 23 | + N --> P[Configuration file handling] |
| 24 | + N --> Q[GET, POST, DELETE methods support] |
| 25 | + N --> R[Serve static content] |
| 26 | + N --> S[Handle file uploads] |
| 27 | + N --> T[Multiple ports support] |
| 28 | + |
| 29 | + A3[For MacOS only] --> U[Use of fcntl] |
| 30 | + |
| 31 | + A4[Configuration File] --> V[Define server host and port] |
| 32 | + V --> W[Set up server_names] |
| 33 | + W --> X[Configure routes for files] |
| 34 | + X --> Y[Enable CGI execution] |
| 35 | + X --> Z[Handle uploads and directory listing] |
| 36 | + |
| 37 | + A5[Bonus Part] --> AA[Support cookies and session management] |
| 38 | + AA --> AB[Handle multiple CGI scripts] |
| 39 | +
|
| 40 | + A6[Submission and Peer Evaluation] --> AC[Submit via Git repository] |
| 41 | +``` |
0 commit comments