HTTP 常见的请求头有哪些? 作用?常见的使用场景都有哪些?
在 HTTP 协议中,**请求头(Request Headers)**是客户端向服务器发送请求时附带的元数据,主要用于传递请求的相关信息,比如客户端信息、请求的格式要求、认证信息等。理解这些请求头的作用和使用场景对于开发现代 Web 应用至关重要。以下是一些常见的 HTTP 请求头及其作用和使用场景,结合实际项目代码示例进行讲解。
一、常见的 HTTP 请求头及其作用
-
Accept
- 作用:指定客户端能够理解的内容类型,告诉服务器返回何种格式的数据(如 JSON、HTML、XML 等)。
- 常见值:
text/html
,application/json
,application/xml
,text/plain
,*/*
(任意类型) - 使用场景:当客户端需要指定请求返回的数据格式时(如 API 请求中常使用
Accept: application/json
表示希望返回 JSON 格式的响应)。
示例:
GET /api/users HTTP/1.1 Host: example.com Accept: application/json
后端示例(Flask):
from flask import Flask, jsonify, request app = Flask(__name__) @app.route('/api/users', methods=['GET']) def get_users(): # 根据 Accept 请求头返回不同格式的数据 if request.accept_mimetypes.best_match(['application/json', 'text/html']) == 'application/json': return jsonify({ "users": ["John", "Jane"]}) return "<h1>Users</h1><ul><li>John</li><li>Jane</li></ul>" if __name__ == '__main__': app.run(debug=True)
-
Content-Type
- 作用:告诉服务器请求体的媒体类型(如提交的表单数据类型)。如果客户端发送了请求体(如 POST 请求),通常需要设置此头部。
- 常见值:
application/json
,application/x-www-form-urlencod