Table of Contents

  1. Abstract
  2. Introduction
    1. What is HTTP?
    2. What's Wrong with HTTP?
    3. Evaluation and Performance
      1. Requests per second (rps or HTTPops/sec)
      2. Throughput (bps) AKA bandwidth
      3. Round-Trip Time (RTT)
      4. Error rate
    4. How is Performance Measured?
      1. Benchmarking
      2. SGI WebStone 1.1 benchmark
      3. SPEC Webperf benchmark (in development)
  3. Web Server Optimization
    1. Use standalone server daemon - not inetd
    2. Use threads or process pools - not fork/exec
    3. Use APIs in lieu of CGIs or compile scripts
    4. Clusters of servers and a DNS distributor: A Scaleable Web Server
    5. A Hierarchical Internet Object Cache: Proxy servers
    6. Other Web Server Performance Considerations
  4. The HTTP Protocol
    1. How the Protocol Works
      1. Client opens connection and requests object
      2. Server services request and closes connection
      3. Illustration of HTTP request
    2. Sources of HTTP Latency
    3. Slow Start
    4. Solutions:
      1. Keep TCP connections open and reuse them: Keep-Alive
      2. Cluster requests into one HTTP exchange
      3. Binary encoding of headers instead of ASCII
      4. Extend methods and reduce CGIs
  5. Conclusion
    1. Server-side improvements are transparent
    2. Changes to protocol require rewriting software
  6. References