POST с -d
Урок 32 из 47 курса Сетевое взаимодействие в терминале на Coddy.
До сих пор каждый запрос что-то запрашивал. -d, напротив, что-то отправляет:
curl -s -d 'name=ada' http://127.0.0.1:9122/signupВ тот момент, когда вы добавляете этот параметр, происходят две вещи. curl самостоятельно переключает метод с GET на POST и прикрепляет переданные вами данные к телу запроса.
Таким образом, -d — это не просто «добавить данные»: он изменяет тип запроса. Если вам нужен POST вообще без тела, нужно самостоятельно указать -X POST.
GET помещает параметры в URL, где их могут увидеть и записать в журнал все, а POST помещает их в тело. Поэтому формы с паролями используют POST: не потому, что тело зашифровано — это не так, — а потому, что URL оказываются в истории браузера, журналах сервера и заголовках реферера.
Задание
ЭкспертОтправь свой первый POST и прочитай, что получил сервер.
- Запусти слушатель захвата на порту 9122 (он отвечает с кодом 200 и записывает запрос в
req.txt) - Отправь POST с данными
name=adaнаhttp://127.0.0.1:9122/signup - Выведи первую строку из
req.txt
Ожидаемый вывод:
POST /signup HTTP/1.1Укажи для curl
--max-time 3, чтобы он не ждал бесконечно, и отбрось его вывод.
Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Сетевое взаимодействие в терминале
4Доступен ли он?
ICMP и pingЧтение вывода pingКогда ping вводит в заблуждениеОтказано или превышено время ожиданияПовторение: доступность7Отправка данных
POST с -dЧто на самом деле отправляет -dКодирование формыОтправка JSONPUT и DELETEПовторение: запись данных3Порты и сокеты
Что такое портХорошо известные портыЛокальный хостПрослушивание и подключениеПовторение: порты6curl в деталях
Просмотр заголовковСохранение ответовПользовательские заголовкиСтатус и время выполненияКоды выхода curlПовторение: флаги curl9Аутентификация и отладка
API-ключи и BearerUser-AgentТайм-ауты и повторные попыткиАнализ ошибкиПовторение: отладкаПотренируйтесь самостоятельно: Песочница Terminal