Ответ
В GET-запросе данные (payload) передаются в URL в виде query-строки.
Синтаксис:
<URL>?key1=value1&key2=value2
- Строка параметров начинается с символа
?. - Пары
ключ=значениеразделяются символом&. - Специальные символы должны быть закодированы (URL-encoded).
Пример:
GET /search?q=test+api&limit=10&page=2 HTTP/1.1
Host: example.com
Важные ограничения и best practices:
- Длина URL ограничена (обычно ~2048 символов), что не подходит для больших данных.
- Безопасность: Параметры GET видны в истории браузера, логах сервера. Не используйте GET для передачи паролей, токенов или конфиденциальных данных.
- Кэширование и закладки: GET-запросы могут кэшироваться и сохраняться в закладках.
- Семантика: GET предназначен для получения данных, а не для их модификации (согласно REST). Для отправки больших или сложных данных используйте методы POST или PUT.
Ответ 18+ 🔞
А, ну вот, классика, блядь! Сейчас объясню, как эти GET-запросы работают, чтобы ты не накосячил, как последний распиздяй.
Смотри, когда ты делаешь GET-запрос, вся твоя полезная нагрузка — эта самая «пейлоад» — не в теле письма, а прямо в адресной строке, как объявление на заборе! Всё на виду, сука.
Как это выглядит, ёпта:
<URL>?ключ1=значение1&ключ2=значение2
- Начинается эта хуйня с вопросительного знака
?. Это как сигнал: «Внимание, щас будет параметр!» - Парочки «ключ=значение» болтаются на амперсандах
&, как сосиски на верёвочке. - А если у тебя там пробелы или ещё какая херня — их надо закодировать, URL-encoded, блядь, чтобы браузер не обосрался.
Вот тебе живой пример, смотри:
GET /search?q=test+api&limit=10&page=2 HTTP/1.1
Host: example.com
Видишь? Ищешь «test api», лимит 10, страница вторая. Всё прозрачно, как слёзы ребёнка.
А теперь, блядь, самое важное — подводные ебучки!
- Длина, сука! Урл не резиновый. Обычно где-то 2048 символов, и всё. Попробуй запихни туда «Войну и мир» — нихуя не выйдет. Для больших данных это не катит.
- Безопасность — ноль ебать! Вся эта строка с параметрами светится в истории браузера, в логах сервера, её любой подсмотрит. НИКОГДА, слышишь, НИКОГДА не пихай в GET пароли, токены или другую конфиденциальную хуйню! Это как кричать номер своей кредитки в толпу.
- Кэши и закладки. GET-запросы могут закешироваться или сохраниться в закладках. Иногда это полезно, а иногда — пиздец как нет.
- Семантика, ёбта! GET — это для получения данных. Чисто пришёл, спросил, ушёл. Он не для того, чтобы что-то менять на сервере (по REST-правилам, во всяком случае). Если тебе надо отправить что-то объёмное или сложное — твои методы POST или PUT. Не путай, а то сервер тебе такого наотвечает!
Вот и вся магия. Кажется просто, а половина потом ебётся с проблемами, потому что не читали, блядь, инструкцию.