Skip to content

cocarmon/severt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📊 Metrics and 🎯 Goals for an HTTP Server Project

1. 🚀 Performance Metrics

  • Throughput: Measure how many requests your server can handle per second.
  • Latency: Measure response times (average and p99 latency) under varying loads.
  • Concurrency: Test how the server performs with 10, 100, or 1,000 concurrent connections.
  • CPU/Memory Usage: Profile the server under load to ensure efficient resource usage.

2. 🛠️ Features and Extensibility

  • Static File Serving:
    • Serve files efficiently with support for partial requests (HTTP Range headers).
  • Logging Support:
    • Allow users to keep track of errors through logging.
  • Customizable Error Handling:
    • Add meaningful HTTP error codes and allow users to define error pages.

3. 📚 HTTP Compliance

  • HTTP 1.1 Support:
    • Include persistent connections with keep-alive headers.
  • Standards Adherence:
    • Properly handle request/response headers, content encoding, and status codes.
  • Content Negotiation:
    • Respond based on Accept headers (e.g., Image or HTML).

4. 📈 Scalability and Concurrency

  • Asynchronous I/O:
  • Thread Pooling:
  • Load Testing:

5. 🔧 Advanced Features

  • Caching:
    • Implement in-memory caching for frequently requested resources.
    • Support ETag or Last-Modified headers.
  • Rate Limiting:
    • Prevent abuse by limiting the number of requests from a single IP.
  • Logging:
    • Log requests and generate usage analytics (e.g., popular endpoints, error rates).

🎯 Advanced Goals

  1. Set Performance Targets:
    • Handle 3k RPS (requests per second) with less than a 1% error rate.
  2. Compliance:
    • Pass an HTTP compliance suite like h2spec.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages