[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-rabota-v-cli-bash-kak-vypolnyat-http-zaprosy-iz-komandnoy-stroki-s-pomoshchyu-curl-i-wget":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":20,"progress":21,"seo":22},173,"kak-vypolnyat-http-zaprosy-iz-komandnoy-stroki-s-pomoshchyu-curl-i-wget",4,"rabota-v-cli-bash","Работа в CLI (Bash)","💻","Как выполнять HTTP-запросы из командной строки с помощью curl и wget?","**`curl`** — универсальный инструмент командной строки для выполнения HTTP-запросов (и других протоколов). **`wget`** — специализированный инструмент для скачивания файлов. Для Java-разработчика `curl` — основной инструмент тестирования REST API без графических клиентов.\n\n### curl — базовые запросы\n\n```bash\n# GET-запрос\ncurl https:\u002F\u002Fapi.example.com\u002Fusers\n\n# Сохранить ответ в файл\ncurl -o response.json https:\u002F\u002Fapi.example.com\u002Fusers\n\n# Показать заголовки ответа\ncurl -I https:\u002F\u002Fexample.com                  # Только заголовки (HEAD)\ncurl -i https:\u002F\u002Fexample.com                  # Заголовки + тело\n\n# Verbose (подробный вывод — полезно для отладки)\ncurl -v https:\u002F\u002Fexample.com\n\n# Тихий режим (без прогресс-бара)\ncurl -s https:\u002F\u002Fapi.example.com\u002Fusers\n```\n\n### Разные HTTP-методы\n\n```bash\n# POST с JSON\ncurl -X POST https:\u002F\u002Fapi.example.com\u002Fusers \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"John\", \"email\": \"john@example.com\"}'\n\n# PUT\ncurl -X PUT https:\u002F\u002Fapi.example.com\u002Fusers\u002F1 \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\": \"Jane\"}'\n\n# DELETE\ncurl -X DELETE https:\u002F\u002Fapi.example.com\u002Fusers\u002F1\n\n# PATCH\ncurl -X PATCH https:\u002F\u002Fapi.example.com\u002Fusers\u002F1 \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"email\": \"new@example.com\"}'\n```\n\n### Заголовки и аутентификация\n\n```bash\n# Произвольные заголовки\ncurl -H \"Authorization: Bearer eyJhbGciOi...\" \\\n     -H \"Accept: application\u002Fjson\" \\\n     https:\u002F\u002Fapi.example.com\u002Fdata\n\n# Basic Auth\ncurl -u username:password https:\u002F\u002Fapi.example.com\u002Fdata\n\n# Отправка данных формы\ncurl -X POST -d \"username=admin&password=secret\" https:\u002F\u002Fexample.com\u002Flogin\n\n# Загрузка файла (multipart form)\ncurl -F \"file=@report.pdf\" https:\u002F\u002Fexample.com\u002Fupload\n```\n\n### Полезные флаги curl\n\n```bash\ncurl -L https:\u002F\u002Fexample.com          # Следовать редиректам (-L = location)\ncurl -k https:\u002F\u002Fself-signed.example  # Игнорировать ошибки сертификата\ncurl -w \"%{http_code}\" -s -o \u002Fdev\u002Fnull https:\u002F\u002Fexample.com  # Только HTTP-код ответа\ncurl --connect-timeout 5 --max-time 30 https:\u002F\u002Fexample.com  # Таймауты\ncurl --retry 3 https:\u002F\u002Fapi.example.com\u002Fdata                 # Повторные попытки\n```\n\n### wget — скачивание файлов\n\n```bash\nwget https:\u002F\u002Fexample.com\u002Ffile.zip              # Скачать файл\nwget -O output.zip https:\u002F\u002Fexample.com\u002Ffile.zip # Указать имя выходного файла\nwget -b https:\u002F\u002Fexample.com\u002Flarge-file.iso      # Скачать в фоне\nwget -c https:\u002F\u002Fexample.com\u002Flarge-file.iso      # Продолжить прерванную загрузку\nwget -r -l 2 https:\u002F\u002Fdocs.example.com\u002F          # Рекурсивное скачивание (зеркало сайта)\nwget --user=admin --password=secret https:\u002F\u002Fexample.com\u002Fdata  # С аутентификацией\n```\n\n### Сравнение curl и wget\n\n| Характеристика | curl | wget |\n|---|---|---|\n| Протоколы | HTTP, HTTPS, FTP, SCP, SFTP, LDAP и др. | HTTP, HTTPS, FTP |\n| REST API | Полная поддержка (методы, заголовки) | Только GET |\n| Рекурсивное скачивание | Нет | Да (`-r`) |\n| Возобновление загрузки | `-C -` | `-c` |\n| Вывод | В stdout по умолчанию | В файл по умолчанию |\n\n### Практические примеры для Java-разработчика\n\n```bash\n# Проверка health endpoint Spring Boot\ncurl -s http:\u002F\u002Flocalhost:8080\u002Factuator\u002Fhealth | jq .\n\n# Тестирование REST API\ncurl -s -X POST http:\u002F\u002Flocalhost:8080\u002Fapi\u002Fusers \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"name\":\"Test\",\"email\":\"test@test.com\"}' | jq .\n\n# Мониторинг: проверить код ответа\nSTATUS=$(curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" http:\u002F\u002Flocalhost:8080\u002Factuator\u002Fhealth)\nif [ \"$STATUS\" != \"200\" ]; then\n    echo \"Service is down! Status: $STATUS\"\nfi\n```\n\n> **На собеседовании:** уверенное владение `curl` с различными HTTP-методами и заголовками — обязательный навык. Покажите, что можете быстро протестировать REST endpoint без Postman. Знание `-s -o \u002Fdev\u002Fnull -w \"%{http_code}\"` для получения только кода ответа — отличный маркер практического опыта.\n\n---","","junior",[15,16,17,18,19],"curl","linux","http","bash","networking",[],null,{"title":23,"description":24,"ogTitle":23,"ogDescription":25,"keywords":26,"schemaAnswer":33,"featuredSnippetReady":34},"curl и wget: HTTP-запросы из командной строки -- Gymterview","Как выполнять HTTP-запросы из командной строки? curl: GET, POST, PUT, DELETE, заголовки, аутентификация. wget: скачивание файлов. Практические примеры тестирования REST API и Spring Boot Actuator.","Полное руководство по curl и wget: HTTP-методы, заголовки, аутентификация, скачивание файлов и тестирование REST API.",[15,27,28,29,30,31,32],"wget","HTTP-запросы CLI","curl POST JSON","curl заголовки","REST API тестирование","curl примеры","curl -- универсальный инструмент для HTTP-запросов: GET (по умолчанию), POST\u002FPUT\u002FDELETE\u002FPATCH через -X, заголовки через -H, тело через -d, файлы через -F. Полезные флаги: -s (тихий режим), -i\u002F-I (заголовки), -v (отладка), -L (следовать редиректам), -o (сохранить в файл), -w '%{http_code}' (код ответа). wget предназначен для скачивания: -O (имя файла), -c (продолжить загрузку), -r (рекурсивно). Практические примеры: проверка Spring Boot health endpoint (curl -s localhost:8080\u002Factuator\u002Fhealth | jq .), тестирование REST API с JSON-телом.",true]