Ответ
HTTP-запрос состоит из следующих обязательных и опциональных компонентов:
-
Метод (HTTP Method): Определяет тип операции.
GET— получение ресурса.POST— создание ресурса.PUT/PATCH— полное/частичное обновление.DELETE— удаление ресурса.HEAD,OPTIONS— служебные методы.
-
URL (Uniform Resource Locator): Адрес целевого ресурса.
- Может включать query-параметры:
https://api.example.com/users?page=2&limit=20.
- Может включать query-параметры:
-
Заголовки (Headers): Метаданные запроса.
Content-Type— тип данных тела (application/json,application/x-www-form-urlencoded).Authorization— токен аутентификации (Bearer <token>).User-Agent,Accept,Cache-Controlи др.
-
Тело запроса (Body): Данные, отправляемые на сервер (используется с
POST,PUT).- Чаще всего в формате JSON, XML или бинарных данных.
Пример формирования запроса на Swift:
// 1. URL с query-параметрами
let url = URL(string: "https://api.example.com/posts")!
// 2. Создание запроса
var request = URLRequest(url: url)
request.httpMethod = "POST"
// 3. Установка заголовков
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("Bearer YOUR_TOKEN", forHTTPHeaderField: "Authorization")
// 4. Подготовка тела запроса (JSON)
let postData: [String: Any] = ["title": "New Post", "body": "Content"]
request.httpBody = try? JSONSerialization.data(withJSONObject: postData)
// 5. Отправка
let task = URLSession.shared.dataTask(with: request) { data, response, error in
// Обработка ответа
}
task.resume()