Ответ
В контексте HTTP, ответ (response) — это сообщение, которое сервер отправляет клиенту (например, браузеру) после получения и обработки его запроса (request).
Он является фундаментальной частью клиент-серверного взаимодействия в вебе.
Ключевые компоненты HTTP-ответа:
-
Стартовая строка (Status Line)
- Версия протокола (например,
HTTP/1.1
). - Код состояния (Status Code): числовой код, указывающий на результат обработки запроса (например,
200 OK
,404 Not Found
,500 Internal Server Error
). - Текстовое описание статуса (например,
OK
).
- Версия протокола (например,
-
Заголовки (Headers)
- Пары ключ-значение, содержащие метаинформацию об ответе. Например,
Content-Type: application/json
сообщает клиенту, что в теле ответа находится JSON.
- Пары ключ-значение, содержащие метаинформацию об ответе. Например,
-
Тело ответа (Body)
- Необязательная часть, содержащая сами данные, запрошенные клиентом. Это может быть HTML-страница, JSON-объект, изображение, файл и т.д.
Пример на стороне сервера (Python, Flask):
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/user/1')
def get_user():
user_data = {"id": 1, "name": "Alice"}
# Flask формирует HTTP-ответ:
# - Тело: JSON-строка '{"id": 1, "name": "Alice"}'
# - Статус-код: 200
# - Заголовок: Content-Type: application/json
return jsonify(user_data), 200
Пример на стороне клиента (Python, Requests):
import requests
# Клиент отправляет запрос и получает объект ответа
response = requests.get('http://127.0.0.1:5000/api/user/1')
# Анализ полученного ответа
print(f"Статус-код: {response.status_code}") # Статус-код: 200
print(f"Заголовки: {response.headers['Content-Type']}") # Заголовки: application/json
print(f"Тело ответа: {response.json()}") # Тело ответа: {'id': 1, 'name': 'Alice'}