HTTP
长连接和短链接
长连接(Keep-Alive):在HTTP/1.1中,长连接是指客户端与服务器建立的持久连接,使得在单个连接上可以发送多个请求和响应。这样可以减少每次请求建立连接的开销,提高性能。在长连接中连接在一段时间内保持打开状态,以便在需要时进行多次通信。
短连接:短连接是指每次请求都会建立一个新的连接,请求结束后立即关闭连接。这种方式会增加每次请求的连接建立和断开开销,但有时候也可以确保每个请求都是在一个独立的环境中完成,避免某些问题。
HTTP请求和相应报文格式
HTTP 请求报文格式:
[请求行]
[请求头部]
空行
[请求体]
请求行:包含请求方法、URL和协议版本。
请求头部:包含各种请求头信息,如Host、User-Agent、Content-Type等。
空行:用于分隔请求头部和请求体。
请求体:可选的,用于传输一些数据,比如 POST 请求中的表单数据。
HTTP 响应报文格式:
[状态行]
[响应头部]
空行
[响应体]
状态行:包含协议版本、状态码和状态消息。
响应头部:包含各种响应头信息,如Content-Type、Content-Length等。
空行:分隔响应头部和响应体。
响应体:包含实际的响应数据,如 HTML 内容、JSON 数据等。
示例:
HTTP 请求报文示例:
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
HTTP 响应报文示例:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
HTTP常见状态码
1xx 信息性状态码:指示请求已被接受或正在处理。
100 Continue
101 Switching Protocols
2xx 成功状态码:指示请求已成功被服务器接收、理解、并接受。
200 OK
201 Created
204 No Content
3xx 重定向状态码:指示需要客户端采取进一步的操作才能完成请求。
301 Moved Permanently
302 Found
304 Not Modified
4xx 客户端错误状态码:指示客户端的请求有错误。
400 Bad Request
401 Unauthorized
404 Not Found
5xx 服务器错误状态码:指示服务器无法完成明显有效的请求。
500 Internal Server Error
503 Service Unavailable