Поддерживается ли кэширование в стандарте REST
Python
Middle
Без компании
Поддерживается ли кэширование в стандарте REST
Ответы
Да, REST поддерживает кэширование через HTTP-заголовки. Основные механизмы:
- **Cache-Control** – управляет кэшированием (например, `max-age`, `no-cache`).
- **ETag** – хэш ресурса для проверки изменений.
- **Last-Modified** – дата последнего изменения ресурса.
Пример кода с Flask:
```
from flask import Flask, jsonify, request
import time
app = Flask(__name__)
@app.route('/data')
def get_data():
# Устанавливаем заголовки кэширования
response = jsonify({"data": "example"})
response.headers['Cache-Control'] = 'public, max-age=60'
response.headers['ETag'] = str(hash("example"))
return response
```
Клиент может использовать `If-None-Match` (с ETag) или `If-Modified-Since` (с Last-Modified) для проверки актуальности данных. Сервер отвечает `304 Not Modified`, если данные не изменились.