The HTTP protocol serves as the “common language” of the internet, supporting our daily web browsing, app usage, and API calls. Today, let’s discuss this seemingly simple yet profoundly rich protocol.
What is HTTP?
HTTP (Hypertext Transfer Protocol) acts like a courier in the internet world, responsible for delivering information between the client (such as your mobile browser) and the server (like the backend of a website). It was born in 1989, proposed by Tim Berners-Lee, and has since become the cornerstone of the World Wide Web.
How does HTTP work?
Imagine the process of ordering takeout:
- 1. You open the takeout app (client) and select dishes (request)
- 2. The merchant (server) receives the order and starts preparing
- 3. The delivery person brings the prepared meal to you (response)
The workflow of HTTP is similar:
- • The client initiates a request: “I want the homepage content”
- • The server processes the request: “Okay, here is the HTML you requested”
- • The client receives and displays the content
The “Delivery Slip” of an HTTP Request
Each HTTP request contains three parts of information:
Request Line
Indicates what to do (GET to retrieve/POST to submit), what resource is needed (/index.html), and which version is used (HTTP/1.1)
Request Headers
Additional information, such as your device type and acceptable content formats
Request Body
Optional, such as data submitted when filling out a form
GET /article/123 HTTP/1.1
Host: tech.example.com
User-Agent: iPhone Safari
Accept: application/json
How the Server Responds
The server’s response contains three parts
Status Line
The response status code, such as 200 for success, 404 for resource not found
Response Headers
Information such as content type and length
Response Body
The actual data, such as HTML or images
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: max-age=3600
{"title":"Detailed Explanation of HTTP","author":"Zhang San"}
Key Features of HTTP
1. Statelessness
HTTP is a stateless protocol, meaning each request is independent, and the server does not retain any information from previous requests. This simplifies server design, but if state needs to be maintained across multiple requests, mechanisms like <span>Cookie</span> and <span>Session</span> are required.
2. Flexibility
HTTP allows the transmission of any type of data object. The content type is specified by the <span>Content-Type</span> header field.
3. Extensibility
HTTP is extensible, allowing new features to be added through custom header fields and extended protocols.
4. Request-Response Model
HTTP uses a request-response model where the client sends a request, and the server returns a response.
5. Support for Multiple Transfer Methods
HTTP supports various request methods, such as <span>GET</span>, <span>POST</span>, <span>PUT</span>, and <span>DELETE</span>, each used for different types of operations.
6. Plaintext Transmission
By default, HTTP transmits data in plaintext, meaning the transmitted data can be intercepted by intermediaries. <span>HTTPS (HTTP Secure)</span> provides encrypted transmission by using the <span>SSL/TLS</span> protocol on top of <span>HTTP</span>.