Sobes.tech
Back to questions
Middle
5

Есть ли у GET-запроса тело? Как GET передаёт параметры? Что такое Content-Type и Accept, в чём отличие?

Companies where asked
IT1

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 в ответ.