A robust HTTP server implementation with support for multiple clients and concurrent connections, developed as part of CSC361 (Computer Communications & Networks) at the University of Victoria.
- Multi-client support with concurrent connection handling
- Connection header implementation
- Response codes: 200 (OK), 400 (Bad Request), 404 (Not Found)
- Thread-safe request processing
- Custom implementation of reliable data transfer over UDP
- Flow control mechanisms
- Acknowledgment (ACK) system
- Handles network unreliability and packet loss
- Congestion control implementation
- Integration of HTTP protocol with RDP layer
- Reliable web data transfer over unreliable connections
- Maintains HTTP semantics while using custom transport protocol
- Concurrent Processing: Handle multiple client requests simultaneously
- Thread Safety: Proper synchronization for shared resources
- Protocol Implementation: Custom network protocol stack
- Error Handling: Robust error detection and recovery
- Performance Optimization: Efficient resource utilization
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ HTTP Client │ ←→ │ RDP Protocol │ ←→ │ UDP Network │
└─────────────┘ └──────────────┘ └─────────────┘
- Clone the repository:
git clone https://github.com/amirrezaes/Python-HTTP-server.git
cd Python-HTTP-server
- Run the server:
python3 server.py
- Connect with a client:
python3 client.py
.
├── P1/ # HTTP Client/Server Implementation
├── P2/ # RDP Protocol Implementation
├── P3/ # HTTP over RDP Integration
└── README.md
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- University of Victoria CSC361 course staff
- Network protocol design principles
- TCP/IP protocol suite documentation