What is HTTP?

HTTP (Hypertext Transfer Protocol) is the foundation protocol of the World Wide Web, defining how messages are formatted and transmitted between web browsers and servers. It is a stateless, application-layer protocol that enables the retrieval of linked resources.

Quick Facts

Full NameHypertext Transfer Protocol
Created1991 by Tim Berners-Lee
SpecificationOfficial Specification

How It Works

HTTP was developed by Tim Berners-Lee at CERN starting in 1989. It operates as a request-response protocol: clients send requests to servers, which respond with the requested resources. HTTP/1.1 (1997) added persistent connections and chunked transfers. HTTP/2 (2015) introduced multiplexing and header compression. HTTP/3 (2022) uses QUIC protocol for improved performance. HTTP methods include GET, POST, PUT, DELETE, PATCH, HEAD, and OPTIONS. The protocol is text-based and human-readable, making it easy to debug. HTTP/3 (2022) replaces TCP with QUIC (Quick UDP Internet Connections), eliminating head-of-line blocking at the transport layer. QUIC provides built-in encryption, faster connection establishment (0-RTT), and improved performance on unreliable networks. Major browsers and CDNs now support HTTP/3, making it the future of web transport.

Key Characteristics

  • Request-response protocol model
  • Stateless - no connection state between requests
  • Text-based and human-readable
  • Supports multiple methods (GET, POST, PUT, DELETE)
  • Headers carry metadata about requests/responses
  • Versions: HTTP/1.1, HTTP/2, HTTP/3

Common Use Cases

  1. Web page retrieval
  2. API communication
  3. File downloads and uploads
  4. Form submissions
  5. Streaming media delivery

Example

loading...
Loading code...

Frequently Asked Questions

What is the difference between GET and POST requests?

GET requests retrieve data and include parameters in the URL (visible and bookmarkable), have length limitations, and should be idempotent (safe to repeat). POST requests send data in the request body (not visible in URL), can send larger amounts of data, are used for creating/modifying resources, and should not be cached by browsers.

What does it mean that HTTP is stateless?

HTTP statelessness means each request is independent—the server doesn't remember previous requests from the same client. Every request must contain all information needed to process it. To maintain user sessions, web applications use cookies, session tokens, or URL parameters to track state across multiple requests.

What are HTTP status codes and what do the different ranges mean?

HTTP status codes indicate the result of a request. 1xx are informational, 2xx indicate success (200 OK, 201 Created), 3xx are redirects (301 Permanent, 302 Temporary), 4xx are client errors (400 Bad Request, 404 Not Found, 403 Forbidden), and 5xx are server errors (500 Internal Server Error, 503 Service Unavailable).

What are the differences between HTTP/1.1, HTTP/2, and HTTP/3?

HTTP/1.1 processes requests sequentially with persistent connections. HTTP/2 (2015) introduced multiplexing (multiple requests over one connection), header compression, and server push. HTTP/3 (2022) uses QUIC instead of TCP, providing faster connection setup, eliminating head-of-line blocking, and improving performance on unreliable networks.

What is the difference between PUT and PATCH methods?

PUT replaces an entire resource with the provided data—if you omit a field, it may be deleted or set to default. PATCH performs a partial update, modifying only the specified fields while leaving others unchanged. Use PUT when sending complete resource representations and PATCH when updating specific properties.

Related Tools

Related Terms

Related Articles