HTTP/1.1 Features
HTTP/1.1 (RFC 2616, 1997) is the foundation of modern web communication. While HTTP/2 and HTTP/3 exist, HTTP/1.1 is still widely used.
Key Features of HTTP/1.1
- Persistent Connections (Keep-Alive) — Default on
- Chunked Transfer Encoding — Stream large responses
- Content Negotiation — Client/server agree on format
- Host Header — Required (virtual hosting)
- Cache Controls — ETag, If-None-Match, Cache-Control
HTTP/1.1 Request Example
GET /api/products?page=1&limit=20 HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbG...
Accept: application/json
Accept-Encoding: gzip, deflate
Connection: keep-alive
HTTP/1.1 Limitations
Head-of-Line (HOL) Blocking:
Request 1: [====]────────────── Waiting
Request 2: ────[====]────────── Waiting
Request 3: ────────────[====]── Waiting
Each request must wait for the previous one to complete
on the same TCP connection.
| Limitation | Description |
|---|---|
| HOL Blocking | Requests must be sequential |
| Header Overhead | Headers sent uncompressed every time |
| No Server Push | Server can't proactively send data |
| Limited Parallelism | Browsers limit connections per domain (6) |
HTTP/1.1 Pipelining (Deprecated)
Client sends multiple requests without waiting:
Request 1 ──────────────────>
Request 2 ──────────────────> (sent before response 1)
Request 3 ──────────────────> (sent before response 2)
Server must respond in order:
Response 1 ──────────────────>
Response 2 ──────────────────> (must follow order)
Response 3 ──────────────────>
Pipelining was deprecated because:
- Responses must return in order (HOL blocking remains)
- Error handling is complex
- Intermediaries (proxies) often break it
HTTP Best Practices
Methods
- GET: Read (safe, idempotent)
- POST: Create
- PUT: Replace (idempotent)
- PATCH: Partial update
- DELETE: Remove (idempotent)
Headers
- Content-Type: Body format
- Cache-Control: Caching rules
- Authorization: Authentication
- Accept: Desired response format
Status Codes
- 2xx: Success
- 3xx: Redirection
- 4xx: Client error
- 5xx: Server error
Key Points
- Understanding HTTP/1.1 is essential for production systems
- Always consider scalability and maintainability
- Test thoroughly before deploying to production
- Monitor performance and set up alerting
Common Patterns
- Validation: Always validate input at the boundary
- Error Handling: Use structured error responses
- Logging: Log key events for debugging
- Testing: Unit, integration, and load tests
- Documentation: Keep docs updated with code changes
Practice Problems
Design and implement a solution for HTTP/1.1 in a backend system. Consider scalability, error handling, and production readiness.
Solution
// HTTP/1.1 implementation
// Key aspects: validation, error handling, logging, testing
public class HTTP11 {
// Production-ready implementation
}Identify and handle edge cases for HTTP/1.1. What happens under high load, with invalid input, or during failures?
Solution
// Edge case handling:
// 1. Null/empty input -> validation
// 2. High load -> rate limiting, queuing
// 3. Failures -> retries, circuit breaker
// 4. Concurrent access -> locks, idempotencyWrite a testing strategy for HTTP/1.1. Include unit tests, integration tests, and performance tests.
Solution
// Test plan:
// - Unit: 80% coverage target
// - Integration: API contracts
// - Performance: latency, throughput
// - Chaos: failure injectionQuiz
1. What is the main limitation of HTTP/1.1?
2. Is HTTP/1.1 Keep-Alive on by default?
3. What is the primary purpose of HTTP/1.1?
4. What is a common mistake when implementing HTTP/1.1?
Flashcards
Question
What is HTTP/1.1?
Click to reveal answer
Answer
HTTP version with persistent connections, chunked transfer, and host headers
Question
What is HOL blocking?
Click to reveal answer
Answer
Head-of-line blocking — requests must wait for previous ones to complete
Question
What is HTTP/1.1?
Click to reveal answer
Answer
HTTP/1.1 is a key concept in backend development.
Question
When to use HTTP/1.1?
Click to reveal answer
Answer
Use HTTP/1.1 when building production systems that require reliability, scalability, and maintainability.
Question
HTTP/1.1 best practices
Click to reveal answer
Answer
Follow SOLID principles, write clean code, test thoroughly, document decisions, and monitor in production.
Revision Notes
Key Takeaways
- 1.HTTP/1.1 introduced persistent connections by default
- 2.Main limitation: head-of-line blocking
- 3.Pipelining was deprecated due to ordering issues
- 4.Headers are sent uncompressed (fixed in HTTP/2)
Interview Tips
- •Know HTTP/1.1 features and limitations
- •Understand why HTTP/2 was created
Cheat Sheet
HTTP/1.1
- Features: Keep-Alive, chunked transfer, host headers
- Limitation: HOL blocking (sequential requests)
- Pipelining: Deprecated (ordering issues)
- Default: Persistent connections, 6 connections/domain