Content: Network Transmission Protocols, HTTP Protocol, Introduction to Requests and Responses
Network Transmission Protocols
1. Common Protocols
- HTTP, HTTPS (Hypertext Transfer Protocol)
- FTP (File Transfer Protocol)
- SMTP (Simple Mail Transfer Protocol)
2. HTTP Protocol
HTTP (Hypertext Transfer Protocol) is the foundation of the World Wide Web. It is used for transmitting data on the web, including web pages, images, CSS, and JavaScript files.
HTML (Hypertext Markup Language)
HTTP consists of requests and responses between clients and servers, which are standardized and regulated.
HTTP primarily consists of requests and responses.
Common request methods include POST, GET, PUT, and DELETE.
We can debug HTTP requests using browser plugins like “FireFox httpFox.” Press “Ctrl + Shift + F2” to activate it.
2.1. Requests and Request Messages
Requests are initiated by clients and have a specific format: Request Line, Request Headers, and Request Body.
- 1. Request Line
It consists of the request method, request URL, and protocol version.
1 | GET /day01/code/login.php?username=123&password=123 HTTP/1.1 |
1 | POST /day01/code/login.php HTTP/1.1 |
- 2. Request Headers
Headers in the request include:
Host: The host to which the request is made.
Cache-Control: Control caching.
Origin: The domain name of the requesting site.
Accept: MIME types accepted by the client, indicating which data formats it can receive.
User-Agent: Provides information about the client’s browser version and operating system.
Referer: Indicates the URL that referred the client to the current URL.
Accept-Encoding: Specifies accepted compression formats.
Accept-Language: Preferred language for response.
If-None-Match: Records the server’s ETag value to control caching. Automatically generated by the server.
If-Modified-Since: Records the server’s Last-Modified value. Automatically generated by the server.
3. Request Body
The data sent to the server. If data contains Chinese characters, it is encoded, and the server will decode it automatically. When submitting a form using the POST method, the request header will include Content-Type: application/x-www-form-urlencoded
, but this is not needed for GET requests.
2.2. Responses and Response Messages
Responses are sent by servers and have a specific format: Status Line, Response Headers, and Response Body.
- 1. Status Line
It consists of the protocol version, status code, and status message.
1 | HTTP/1.1 200 OK |
- 2. Response Headers
Headers in the response include:
Date: The response timestamp.
Server: Information about the server.
Last-Modified: The last modification time of the resource, generated by the server.
ETag: A unique identifier generated by the server after resource modification.
Content-Length: The length of the response body.
Content-Type: The type of the response resource.
3. Response Body
The content sent by the server.
- Status Codes
Common status codes include:
- 200 OK: The request was successful.
- 302 Found: The request is redirected.
- 304 Not Modified: The document has not changed (browsers use cache).
- 403 Forbidden: Access is forbidden.
- 405 Method Not Allowed: The request method is not supported.
- 404 Not Found: The requested resource was not found.
- 500 Internal Server Error: A server error occurred.
3. Intercepting Communication Between Browsers and Servers
To intercept communication between client browsers and servers, you need to use a packet capture tool like Charles.