Linux curl content type

Curl show Content-Type only

I was wondering if it is possible to use curl to only show the content-type of the response header. I want to check if the content-type is text/html for example before downloading instate of downloading the file and then find out it is application/pdf. I used the example below in the hope that it would return the document if it is valid for me and else do nothing or something! The sample below just prints the full content of the page.

curl -F "type=text/html" www.google.nl 

But If i do something like the example below it still downloads the whole thing, and I don’t think that is right.

curl -F "type=text/html" http://www.axmag.com/download/pdfurl-guide.pdf 

2 Answers 2

Option -F is for forms. Instead you want to send a HEAD request for retrieving only the response header without the response body by using option -I .

To display an URL’s content type:

curl -s -I www.google.nl | grep -i «^Content-Type:»

Here option -s is added for silent mode for excluding the progress meter and error messages.

You can also specify the Accept header in your HTTP request. This header is used to accept only specific content types:

curl -s -H «Accept: text/html» http://www.axmag.com/download/pdfurl-guide.pdf

But the disadvantage is that most webservers will serve you an error page which also has the content type text/html . Hence you will still get a HTML file.

Источник

⚓ Выполнение POST-запроса с помощью Curl [Практические примеры]

Мануал

Что такое Curl?

cURL, что означает Client URL, – это утилита командной строки с открытым исходным кодом, используемая разработчиками для передачи данных на сервер или с сервера по различным поддерживаемым протоколам.

Поддерживаемые протоколы включают HTTP POST, HTTP PUT, загрузку файлов на FTP, отправку веб-форм, аутентификацию пользователя, HTTP Cookies, HTTP, HTTPS, FTP, FTPS, SFTP, встроенные SSL-сертификаты и многое другое.

Эта утилита установлена по умолчанию в большинстве дистрибутивов Linux и macOS, а также доступна для Windows.

Эта утилита в основном используется разработчиками для тестирования API, просмотра ответов сервера и выполнения HTTP-запросов.

В этой статье мы дадим вам подробное руководство о том, как выполнить POST-запрос с помощью cURL.

Читайте также:  Linux dying light black screen

Что такое метод запроса HTTP POST?

HyperText Transfer Protocol (HTTP) – это протокол “запрос-ответ”, который обеспечивает связь между клиентскими машинами и серверами.

Например, когда вы ищете что-то в браузере, ваш компьютер отправляет POST-запрос на сервер, который посылает ответ.

Ответ содержит информацию о состоянии отправленного запроса и запрашиваемом содержимом.

Существует несколько методов HTTP.

К ним относятся POST, GET, PUT, HEAD, DELETE, PATCH и OPTIONS. Однако наиболее распространенными являются POST и GET.

Данные, отправленные из браузера на сервер с помощью метода HTTP POST, хранятся в теле запроса, как показано ниже.

POST /test/demo_form.php HTTP/1.1 Content-Type: application/json Content-Length: 1024 Host: itsecforu.ru

Отправка POST-запроса с помощью Curl

Из приведенного выше кода вы можете увидеть все параметры, необходимые для отправки POST-запросов.

Сначала нам нужно указать метод HTTP с помощью параметра -X.

В данном случае это метод POST. Далее необходимо указать тип содержимого с помощью параметра -H.

Это позволит серверу определить тип данных в теле запроса и обработать его соответствующим образом.

Существует два варианта Content-Type: application/x-www-form-urlencoded, который используется при отправке веб-формы на сервер, и multipart/form-data, который используется для загрузки файлов на сервер.

Вы используете параметр -F для отправки данных с использованием типа содержимого multipart/form-data и -d для отправки данных с использованием типа содержимого application/x-www-form-urlencoded.

Последний параметр – это хост/сервер.

Здесь вы можете ввести URL вашего целевого сайта.

Синтаксис CURL по умолчанию для отправки POST-запроса приведен ниже.

Параметр -X определяет метод HTTP для отправки запроса. В нашем случае мы используем метод POST.

Выполним простой POST-запрос с помощью CURL

Чтобы сделать базовый POST-запрос с помощью команды Curl, выполните приведенную ниже команду в терминале.

curl -X POST https://example.com

Отправка дополнительных полей в запросе Curl Post

Мы можем использовать параметр -d для отправки дополнительных данных в POST-запросе.

Помните, что использование этого параметра также определяет заголовок Content-Type/ по умолчанию как application/x-www-form-urlencoded.

Чтобы лучше понять, как мы можем отправлять дополнительные поля, давайте рассмотрим простой HTML-код ниже.

Этот код отображает в браузере простой экран входа в систему с тремя основными полями.

Поле имени пользователя, которое использует имя ввода “user”, поле пароля, которое использует имя ввода “pass”, и кнопка входа.

Вы также можете видеть, что для отправки данных на сервер используется метод HTTP – POST.

Этот код отображает в браузере простой экран входа в систему с тремя основными полями.

Поле имени пользователя, которое использует имя ввода “user”, поле пароля, которое использует имя ввода “pass”, и кнопка входа.

Вы также можете видеть, что для отправки данных на сервер используется метод HTTP – POST.

Вам не нужно понимать весь код Javascript, поскольку то же самое можно сделать с помощью различных языков программирования. К ним относятся PHP, Python, Java и т.д.

var username = req.body.user; var password = req.body.pass;

Первая строка var username = req.body.user; считывает пользовательский ввод в поле username и сохраняет его в переменной username.

Читайте также:  Kali linux banana pi m2 zero

Помните, что это поле использует имя ввода “user”, как показано в HTML-коде.

Вторая строка var password = req.body.pass; считывает данные, введенные пользователем в поле password, и сохраняет их в переменной password.

Помните, что это поле использует имя ввода “pass”, как показано в HTML-коде.

После обработки введенных пользователем данных код NodeJS выведет на экран браузера сообщение “LOGIN SUCCESS” или “INVALID CREDENTIALS”.

Поскольку нам известны имена ввода, используемые для различных полей, вместо того, чтобы запускать браузер и вводить имя пользователя и пароль напрямую, мы можем использовать CURL для отправки этой информации и вывода ответа сервера на терминал.

Это даже больше похоже на автоматизацию браузера.

Давайте рассмотрим синтаксис команды, которую мы будем использовать для достижения этой цели.

curl -d "[Input-Name]=[Your-UserName] & [Input-Pass]=[Your-UserPassword]" -X POST [Target-Host]

Давайте воспользуемся приведенным выше синтаксисом для написания нашей команды:

curl -d "user=johndoe & pass=12345" -X POST http://localhost:3000/

Если вы веб-разработчик или интересуетесь безопасностью веб-приложений, вы всегда можете узнать название различных полей/элементов HTML, щелкнув правой кнопкой мыши на элементе в браузере и выбрав опцию “inspect element”. Это откроет код HTML и CSS. Однако это может быть применимо не ко всем сайтам.

Укажите Content-Type в POST-запросе с помощью Curl

Если вы хотите использовать определенный заголовок или Content-Type, вы можете использовать параметр -H.

Например, мы можем изменить приведенную выше команду, включив в нее заголовок application/x-www-form-urlencoded, как показано ниже.

echo; curl -d "user=johndoe&pass=12345" -H "Content-Type: application/x-www-form-urlencoded" -X POST http://192.168.1.52:3001/; echo; echo

И вот здесь самое интересное. Давайте попробуем указать Content-Type на что-то другое, например application/json.

echo; curl -d "user=johndoe&pass=12345" -H "Content-Type: application/json" -X POST http://192.168.1.52:3001/; echo; echo

Если вы укажете Content-Type как application/json, сервер поймет, что вы отправляете данные в формате JSON, которые будут иметь вид .

При использовании application/x-www-form-urlencoded сервер будет обрабатывать данные в формате name=johndoe&pass=12345.

Загрузка файлов с помощью Curl с использованием метода POST

Чтобы отправить файл с помощью Curl методом POST, мы используем параметр -F и добавим символ @ в начало пути к файлу.

curl -X POST -F 'image=@/home/ubuntu-user/image.png' http://192.168.1.52:3001/upload

Если вы хотите загрузить документ, например, pdf или файл ‘.txt’, мы установим тип ‘fileupload’.

curl -X POST -F 'fileupload=@/home/ubuntu-user/textFile.txt' http://192.168.1.52:3001/upload

Заключение

Теперь вы хорошо понимаете команду CURL и даже знаете, как выполнять HTTP POST запросы.

Читайте также:  Gcc linux проверить версию

Для получения дополнительной информации о Curl вы можете заглянуть на страницу официальной документации.

Есть ли у вас какие-либо вопросы или комментарии по этой теме?

Если да, пожалуйста, пишите в комментариях ниже.

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!

  • Аудит ИБ (49)
  • Вакансии (12)
  • Закрытие уязвимостей (105)
  • Книги (27)
  • Мануал (2 305)
  • Медиа (66)
  • Мероприятия (39)
  • Мошенники (23)
  • Обзоры (820)
  • Обход запретов (34)
  • Опросы (3)
  • Скрипты (114)
  • Статьи (352)
  • Философия (114)
  • Юмор (18)

Anything in here will be replaced on browsers that support the canvas element

Что такое 404 Frame? Большинство инструментов для взлома веб-сайта находятся в 404 Frame. Итак, что же представляют собой команды? Вы можете отдавать команды, используя повседневный разговорный язык, поскольку разработчики не хотели выбирать очень сложную систему команд. Команды Команды “help” / “commands” показывают все команды и их назначение. Команда “set target” – это команда, которая должна […]

В этой заметке вы узнаете о блокировке IP-адресов в Nginx. Это позволяет контролировать доступ к серверу. Nginx является одним из лучших веб-сервисов на сегодняшний день. Скорость обработки запросов делает его очень популярным среди системных администраторов. Кроме того, он обладает завидной гибкостью, что позволяет использовать его во многих ситуациях. Наступает момент, когда необходимо ограничить доступ к […]

Знаете ли вы, что выполняется в ваших контейнерах? Проведите аудит своих образов, чтобы исключить пакеты, которые делают вас уязвимыми для эксплуатации Насколько хорошо вы знаете базовые образы контейнеров, в которых работают ваши службы и инструменты? Этот вопрос часто игнорируется, поскольку мы очень доверяем им. Однако для обеспечения безопасности рабочих нагрузок и базовой инфраструктуры необходимо ответить […]

Одной из важнейших задач администратора является обеспечение обновления системы и всех доступных пакетов до последних версий. Даже после добавления нод в кластер Kubernetes нам все равно необходимо управлять обновлениями. В большинстве случаев после получения обновлений (например, обновлений ядра, системного обслуживания или аппаратных изменений) необходимо перезагрузить хост, чтобы изменения были применены. Для Kubernetes это может быть […]

Является ли запуск сервера NFS в кластере Kubernetes хорошей идеей или это ворота для хакеров Одним из многочисленных преимуществ сетевой файловой системы является ее способность выполнять многократное чтение-запись. И как и все в наши дни, NFS – это просто еще одна служба, которую можно запустить в своем кластере Kubernetes. Однако является ли сервер NFS подходящей […]

Источник

Оцените статью
Adblock
detector