Есть ли у GET-запроса тело? Как GET передаёт параметры? Что такое Content-Type и Accept, в чём отличие?
Answer from AI
sobes.tech AI
GET-запросы по стандарту HTTP обычно не имеют тела (body). Хотя технически HTTP/1.1 не запрещает наличие тела в GET-запросе, на практике большинство серверов и библиотек не ожидают и не обрабатывают тело в GET-запросах.
Параметры в GET-запросе передаются через URL, обычно в строке запроса (query string) после знака вопроса ?. Например:
GET /search?q=example&lang=ru HTTP/1.1
Здесь q=example и lang=ru — параметры запроса.
Content-Type — это заголовок HTTP-запроса или ответа, который указывает тип содержимого тела сообщения. Например, Content-Type: application/json говорит, что тело запроса или ответа содержит JSON.
Accept — это заголовок запроса, который сообщает серверу, какие типы содержимого клиент готов принять в ответе. Например, Accept: application/json означает, что клиент ожидает получить JSON.
Отличие:
- Content-Type описывает формат тела текущего сообщения (запроса или ответа).
- Accept описывает предпочтения клиента по формату ответа от сервера.
Пример:
POST /api/data HTTP/1.1
Content-Type: application/json
Accept: application/xml
{"name": "Иван"}
Здесь клиент отправляет JSON и хочет получить XML в ответ.