11 примеров использование команд curl в режиме реального времени

Часто используемые функции CURL и константы

  • curl_init — Инициализирует сеанс;
  • curl_close — Завершает сеанс;
  • curl_exec — Выполняет запрос;
  • curl_errno — Возвращает код ошибки;
  • curl_setopt — Устанавливает параметр для сеанса, например:
    • CURLOPT_HEADER – значение 1 означает, что необходимо вернуть заголовки;
    • CURLOPT_INFILESIZE — параметр для указания ожидаемого размера файла;
    • CURLOPT_VERBOSE — значение 1 означает что CURL будет выводить подробные сообщения о всех производимых операциях;
    • CURLOPT_NOPROGRESS – отключение индикатора прогресса операции, значение 1;
    • CURLOPT_NOBODY – если Вам не нужен документ, а нужны только заголовки, то поставьте значение 1;
    • CURLOPT_UPLOAD — для закачки файла на сервер;
    • CURLOPT_POST – выполнить запрос методом POST;
    • CURLOPT_FTPLISTONLY — получение списка файлов в директории FTP сервера, значение 1;
    • CURLOPT_PUT — выполнить запрос методом PUT, значение 1;
    • CURLOPT_RETURNTRANSFER — возвратить результат, не выводя в браузер, значение 1;
    • CURLOPT_TIMEOUT – максимальное время выполнения в секундах;
    • CURLOPT_URL – указание адреса для обращения;
    • CURLOPT_USERPWD — строка с именем пользователя и паролем в виде :;
    • CURLOPT_POSTFIELDS – данные для POST запроса;
    • CURLOPT_REFERER — задает значение HTTP заголовка «Referer: »;
    • CURLOPT_USERAGENT —  задает значение HTTP заголовка «User-Agent: »;
    • CURLOPT_COOKIE — содержимое заголовка «Cookie: », который будет отправлен с HTTP запросом;
    • CURLOPT_SSLCERT- имя файла с сертификатом в формате PEM;
    • CURLOPT_SSL_VERIFYPEER – значение 0, для того чтобы запретить проверку сертификата удаленного сервера (по умолчанию 1);
    • CURLOPT_SSLCERTPASSWD — пароль к файлу сертификата.
  • curl_getinfo — Возвращает информацию об операции, вторым параметром может выступать константа для указания, что именно нужно показать, например:
    • CURLINFO_EFFECTIVE_URL — последний использованный URL;
    • CURLINFO_HTTP_CODE — последний полученный код HTTP;
    • CURLINFO_FILETIME — дата модификации загруженного документа;
    • CURLINFO_TOTAL_TIME — время выполнения операции в секундах;
    • CURLINFO_NAMELOOKUP_TIME — время разрешения имени сервера в секундах;
    • CURLINFO_CONNECT_TIME — время, затраченное на установку соединения, в секундах;
    • CURLINFO_PRETRANSFER_TIME — время, прошедшее от начала операции до готовности к фактической передаче данных, в секундах;
    • CURLINFO_STARTTRANSFER_TIME — время, прошедшее от начала операции до момента передачи первого байта данных, в секундах;
    • CURLINFO_REDIRECT_TIME — время, затраченное на перенаправление, в секундах;
    • CURLINFO_SIZE_UPLOAD — количество байт при закачке;
    • CURLINFO_SIZE_DOWNLOAD — количество байт при загрузке;
    • CURLINFO_SPEED_DOWNLOAD — средняя скорость закачки;
    • CURLINFO_SPEED_UPLOAD — средняя скорость загрузки;
    • CURLINFO_HEADER_SIZE — суммарный размер всех полученных заголовков;
    • CURLINFO_REQUEST_SIZE — суммарный размер всех отправленных запросов;
    • CURLINFO_SSL_VERIFYRESULT — результат проверки SSL сертификата, запрошенной с помощью установки параметра CURLOPT_SSL_VERIFYPEER;
    • CURLINFO_CONTENT_LENGTH_DOWNLOAD — размер загруженного документа, прочитанный из заголовка Content-Length;
    • CURLINFO_CONTENT_LENGTH_UPLOAD — размер закачиваемых данных;
    • CURLINFO_CONTENT_TYPE — содержимое полученного заголовка Content-type, или NULL в случае, когда этот заголовок не был получен.

Подробнее о функциях CURL и константах к ним можете посмотреть на официальном сайте PHP — php.net

На этом все, для начинающих я думаю достаточно Удачи!

Основы

Перед тем, как отправить cURL запрос — нам следует создать сеанс. Сделать это можно при помощи функции Данная функция принимает один параметр — url, который будет загружен. Но url можно будет установить позже, по этому данный параметр не обязателен.

$curl = curl_init();

Настройки

Параметры cURL нужны для того, чтобы более точно сконфигурировать Ваш запрос. С помощью параметров можно получить те самые, почти безграничные, возможности работы с запросами.

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

  1. $ch — ссылка на ресурс cURL
  2. Параметр, который мы устанавливаем
  3. Значение параметра

Ниже приведен список часто используемых параметров, а их полный список можно просмотреть в документации php.

Параметр Описание
CURLOPT_RETURNTRANSFER Возвращает ответ как строку (если передать true), вместо вывода на экран
CURLOPT_CONNECTTIMEOUT Позволяет задать количество секунд для ожидания соединения.
CURLOPT_TIMEOUT Задает количество секунд, которые будет выполняться запрос.
CURLOPT_USERAGENT Содержимое заголовка «User-Agent: «, посылаемого в HTTP-запросе.
CURLOPT_URL URL, куда будет отправлен запрос.
CURLOPT_POST true, если нужно отправить POST запрос
CURLOPT_POSTFIELDS Массив параметров для POST запроса

Как задавать параметры

Как описывалось выше, параметры можно задавать при помощи метода . Давайте разберем несколько примеров:

Пример 1: Установим значение URL, куда будет отправлен запрос:

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://testcURL.com');

К слову, установить этот параметр можно в одну строку при инициализации ресурса:

$curl = curl_init('http://testcURL.com');

Пример 2: Установим время выполнения запроса в 10 секунд:

$curl = curl_init();
curl_setopt($curl, CURLOPT_TIMEOUT, 10);

Альтернативный способ задавать настройки

Настройки можно задать при помощи функции , первый параметр которой — ссылка на ресурс cURL, второй — ассоциативный массив, где ключами выступают константы параметров.

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://testcURL.com'
));

Отправка запроса cURL

Как написано выше, при помощи cURL можно отправлять различные запросы. В данной статье мы рассмотрим варианты отправки GET и POST запросов.

Отправить GET запрос

GET запрос используется по умолчанию. Как вы увидите в примере ниже, он достаточно прост для понимания.

Если есть необходимость использовать параметры, их можно просто перечислить в url:

Отправим простой GET запрос с параметрами:

// Инициализация ресурса curl
$curl = curl_init();
// Параметры отправки запроса (мы добавили useragent)
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://testsite.com/?param=value&param2=value2',
    CURLOPT_USERAGENT => 'ctrlv cURL Request'
));
// Отправка запроса; ответ будет в $response
$response = curl_exec($curl);
// Завершение работы с cURL
curl_close($curl);

Отправка POST запроса

Синтаксис для GET и POST запросов немного отличается. В случае, если запрос не содержит параметров, разница будет только в параметре CURLOPT_POST (в POST этот параметр устанавливаем в true или 1). Если необходимо передавать параметры POST запроса, дополнительно указываем параметр CURLOPT_POSTFIELDS (массив, где название параметра — ключ массив).

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

// Инициализация ресурса curl
$curl = curl_init();
// Параметры отправки запроса (мы добавили useragent)
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://testsite.com',
    CURLOPT_USERAGENT => 'ctrlv cURL Request',
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => array(
        param => 'value',
        param22 => 'value2'
    )
));
// Отправка запроса; ответ будет в $response
$response = curl_exec($curl);
// Завершение работы с cURL
curl_close($curl);

HTTPS is HTTP secure

There are a few ways to do secure HTTP transfers. By far the most common
protocol for doing this is what is generally known as HTTPS, HTTP over
SSL. SSL encrypts all the data that is sent and received over the network and
thus makes it harder for attackers to spy on sensitive information.

SSL (or TLS as the latest version of the standard is called) offers a
truckload of advanced features to allow all those encryptions and key
infrastructure mechanisms encrypted HTTP requires.

Curl supports encrypted fetches when built to use a TLS library and it can be
built to use one out of a fairly large set of libraries — will show
which one your curl was built to use (if any!). To get a page from a HTTPS
server, simply run curl like:

Config File

Curl automatically tries to read the file (or file on
Microsoft Windows systems) from the user’s home dir on startup.

The config file could be made up with normal command line switches, but you
can also specify the long options without the dashes to make it more
readable. You can separate the options and the parameter with spaces, or with
or . Comments can be used within the file. If the first letter on a
line is a -symbol the rest of the line is treated as a comment.

If you want the parameter to contain spaces, you must enclose the entire
parameter within double quotes (). Within those quotes, you specify a quote
as .

NOTE: You must specify options and their arguments on the same line.

Example, set default time out and proxy in a config file:

Whitespaces ARE significant at the end of lines, but all whitespace leading
up to the first characters of each line are ignored.

Prevent curl from reading the default file by using -q as the first command
line parameter, like:

Force curl to get and display a local help page in case it is invoked without
URL by making a config file similar to:

You can specify another config file to be read by using the /
flag. If you set config file name to it’ll read the config from stdin,
which can be handy if you want to hide options from being visible in process
tables etc:

Что дальше

Эта статья лишь «скребет по поверхности» libcurl, учитывая огромное количество протоколов и языков, поддерживаемых библиотекой.
Но, надеюсь, она демонстрирует, как легко создавать приложения, использующие протоколы уровня приложений, такие как HTTP.
Web-сайт libcurl (см. раздел ) содержит большое количество примеров и значительный объем полезной документации.
Поэтому в следующий раз при разработке Web-браузера, спайдера или другого приложения, которому требуется протокол уровня приложения, попробуйте libcurl.
Это наверняка ускорит процесс разработки, и вы получите от него удовольствие.

Похожие темы

  • Оригинал статьи (EN).
  • cURL – инструмент на основе командной строки с библиотекой, реализующий многочисленные клиентские протоколы.
    Поддерживает более 12 протоколов, включая FTP, HTTP, Telnet, а также их защищенные варианты.
    cURL работает на нескольких платформах, включая Linux, AIX, BSD и Solaris, поддерживая более 30 языков.
  • PycURL – тонкая прослойка поверх libcurl API.
    Как тонкая прослойка, PycURL работает очень быстро.
    С помощью PycURL можно разрабатывать приложения на Python, использующие библиотеку libcurl.
  • Что касается гибкости приложений, то дополнительные сведения об интеграции возможностей сценариев в приложения можно почерпнуть в руководстве Scripting with Guile .
  • Следите за developerWorks в Твиттере.

Формы

Формы — основной способ представления web-сайта как HTML-страницы
с полями, в которые пользователь вводит данные, и затем нажимает на
кнопку ‘OK’ или ‘Отправить’, после чего данные отсылаются на сервер.
Затем сервер использует принятые данные и решает, как действовать
дальше: искать информацию в базе данных, показать введенный адрес на
карте, добавить сообщение об ошибке или использовать информацию для
аутентификации пользователя. Разумеется, на стороне сервера имеется
какая-то программа, которая принимает ваши данные.

4.1 GET

GET-форма использует метод GET, например следующим образом:

        <form method="GET" action="junk.cgi">
        <input type=text name="birthyear">
        <input type=submit name=press value="OK">
        </form>

Если вы откроете этот код в вашем браузере, вы увидите форму с
текстовым полем и кнопку с надписью «OK». Если вы введете
‘1905’ и нажмете OK, браузер создаст новый URL, по которому и
проследует. URL будет представляться строкой, состоящей из пути
предыдущего URL и строки, подобной
«junk.cgi?birthyear=1905&press=OK».

Например, если форма располагалась по адресу
«www.hotmail.com/when/birth.html», то при нажатии на кнопку
OK вы попадете на URL
«www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK».

Большинство поисковых систем работают таким образом.

Чтобы curl сформировал GET-запрос, просто введите то, что
ожидалось от формы:

        # curl "www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK"

4.2 POST

Метод GET приводит к тому, что вся введенная информация
отображается в адресной строке вашего браузера. Может быть это
хорошо, когда вам нужно добавить страницу в закладки, но это
очевидный недостаток, когда вы вводите в поля формы секретную
информацию, либо когда объем информации, вводимый в поля, слишком
велик (что приводит к нечитаемому URL).

Протокол HTTP предоставляет метод POST. С помощью него клиент
отправляет данные отдельно от URL и поэтому вы не увидете их в
адресной строке.

Форма, генерирующая POST-запрос, похожа на предыдущую:

        <form method="POST" action="junk.cgi">
        <input type=text name="birthyear">
        <input type=submit name=press value=" OK ">
        </form>

Curl может сформировать POST-запрос с теми же данными следующим
образом:

        # curl -d "birthyear=1905&press=%20OK%20" www.hotmail.com/when/junk.cgi

Этот POST-запрос использует ‘Content-Type
application/x-www-form-urlencoded’, это самый широко используемый
способ.

Данные, которые вы отправляете к серверу, должны быть правильно
закодированы
, curl не будет делать это за вас. К примеру, если вы
хотите, чтобы данные содержали пробел, вам нужно заменить этот пробел
на %20 и т.п. Недостаток внимания к этому вопросу — частая ошибка,
из-за чего данные передаются не так, как надо.

4.3 Загрузка файлов с помощью POST (File Upload POST)

В далеком 1995 был определен дополнительный способ передавать
данные по HTTP. Он задокументирован в RFC 1867, поэтому этот способ
иногда называют RFC1867-posting.

Этот метод в основном разработан для лучшей поддержки загрузки
файлов. Форма, которая позволяет пользователю загрузить файл,
выглядит на HTML примерно следующим образом:

        <form method="POST" enctype='multipart/form-data' action="upload.cgi">
        <input type=file name=upload>
        <input type=submit name=press value="OK">
        </form>

Заметьте, что тип содержимого Content-Type установлен в
multipart/form-data.

Чтобы отослать данные в такую форму с помощью curl, введите
команду:

        # curl -F upload=@localfilename -F press=OK 

4.4 Скрытые поля

Обычный способ для передачи информации о состоянии в
HTML-приложениях — использование скрытых полей в формах. Скрытые поля
не заполняются, они невидимы для пользователя и передаются так же,
как и обычные поля.

Простой пример формы с одним видимым полем, одним скрытым и
кнопкой ОК:

        <form method="POST" action="foobar.cgi">
        <input type=text name="birthyear">
        <input type=hidden name="person" value="daniel">
        <input type=submit name="press" value="OK">
        </form>

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

        # curl -d "birthyear=1905&press=OK&person=daniel" 

4.5 Узнать, как выглядит POST-запрос

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

Простой способ увидеть свой POST-запрос, это сохранить
HTML-страницу с формой на диск, изменить метод на GET, и нажать
кнопку ‘Отправить’ (вы можете также изменить URL, которому будет
передаваться данные).

Вы увидите, что данные присоединились к URL, отделенные символами
‘?’, как и предполагается при использовании GET-форм.

Disabling Specific Protocols in Windows builds

The configure utility, unfortunately, is not available for the Windows
environment, therefore, you cannot use the various disable-protocol options of
the configure utility on this platform.

You can use specific defines to disable specific protocols and features. See
CURL-DISABLE.md for the full list.

If you want to set any of these defines you have the following options:

  • Modify
  • Modify
  • Modify
  • Modify the «Preprocessor Definitions» in the libcurl project

Note: The pre-processor settings can be found using the Visual Studio IDE
under «Project -> Settings -> C/C++ -> General» in VC6 and «Project ->
Properties -> Configuration Properties -> C/C++ -> Preprocessor» in later
versions.

Cookies

С помощью cookies веб-браузеры контролируют состояние на стороне
клиента. Cookie — это имя с присоединенным содержимым. Сервер при
помощи отправки cookies сообщает клиенту путь и имя хоста, по
которому в следующий раз должны быть отправлены cookies, сообщает
время жизни cookies и некоторые другие параметры.

Когда клиент соединяется с сервером по адресу, указанному в
принятом cookie, клиент посылает этот cookie к серверу (если время
жизни не истекло).

Многие приложения и сервера используют этот метод, чтобы
объединить нескольких запросов в одну логическую сессию. Чтобы curl
также мог выполнять такую функцию, мы должны уметь сохранять и
отправлять cookies, как и делают браузеры.

Простейший способ отправить cookie к серверу при получении
страницы с помощью curl, это добавить соответствующий ключ в
командной строке:

        # curl -b "name=Daniel" www.cookiesite.com

Cookies отправляются как обычные HTTP-заголовки. Это позволяет curl
сохранять cookies, сохраняя заголовки. Сохранение cookies с помощью
curl выполняется командой:

        # curl -D headers_and_cookies www.cookiesite.com

(кстати, для сохранения cookies лучше использовать ключ -c, об этом
ниже).

У curl имеется полнофункциональный обработчик cookies, который
полезен, когда вы хотите соединиться в очередной раз к серверу и
использовать cookies, сохраненные в прошлый раз (либо подработанные
вручную). Для использования cookies, сохраненных в файле, вызовите
curl так:

        # curl -b stored_cookies_in_file www.cookiesite.com

«Cookie-движок» curl включается, когда вы указываете ключ
-b. Если вы хотите, чтобы curl лишь воспринимал cookies, используйте
-b с указанием файла, которого не существует. Например, если вы
хотите, чтобы curl принял cookies со страницы, а затем пошел по
перенаправлению (возможно, отдав принятый только что cookie), то
можно вызывать curl так:

        # curl -b nada -L www.cookiesite.com

Curl умеет читать и писать cookie-файлы, имеющие формат Netscape и
Mozilla. Это удобный способ обмениваться cookies между браузерами и
автоматическими скриптами. Ключ -b автоматически определяет, является
ли данный файл cookie-файлом указанных браузеров и обрабатывает его
соответствующим образом, а используя ключ -c/—cookie-jar, вы можете
заставить curl записать новый cookie-файл по завершении операции:

        # curl -b cookies.txt -c newcookies.txt www.cookiesite.com

Получение информации

Ещё одним дополнительным шагом является получение данных о cURL запросе, после того, как он был выполнен.

// ...

curl_exec($ch);

$info = curl_getinfo($ch);

echo 'Took ' . $info . ' seconds for url ' . $info;

// …

Возвращаемый массив содержит следующую информацию:

  • “url”
  • “content_type”
  • “http_code”
  • “header_size”
  • “request_size”
  • “filetime”
  • “ssl_verify_result”
  • “redirect_count”
  • “total_time”
  • “namelookup_time”
  • “connect_time”
  • “pretransfer_time”
  • “size_upload”
  • “size_download”
  • “speed_download”
  • “speed_upload”
  • “download_content_length”
  • “upload_content_length”
  • “starttransfer_time”
  • “redirect_time”

Detailed Information

Different protocols provide different ways of getting detailed information
about specific files/documents. To get curl to show detailed information about
a single file, you should use / option. It displays all available
info on a single file for HTTP and FTP. The HTTP information is a lot more
extensive.

For HTTP, you can get the header information (the same as would show)
shown before the data by using /. Curl understands the
/ option when getting files from both FTP and HTTP, and it
will then store the headers in the specified file.

Store the HTTP headers in a separate file (headers.txt in the example):

Note that headers stored in a separate file can be very useful at a later time
if you want curl to use cookies sent by the server. More about that in the
cookies section.

Location header

When a resource is requested from a server, the reply from the server may
include a hint about where the browser should go next to find this page, or a
new page keeping newly generated output. The header that tells the browser to
redirect is .

Curl does not follow headers by default, but will simply display
such pages in the same manner it displays all HTTP replies. It does however
feature an option that will make it attempt to follow the
pointers.

To tell curl to follow a Location:

If you use curl to POST to a site that immediately redirects you to another
page, you can safely use
() and
/ together. curl will only use POST in the first request, and
then revert to GET in the following operations.

Twitter: проверяем отношения между двумя пользователями

Если вам нужно узнать, читает ли ваши твиты определенный пользователь, то можно задействовать API Twitter. Данный скрипт выводит , если два пользователя, указанные на строчках 17 и 18, находятся в дружеских отношениях на Twitter. В противном случае возвращается .

function make_request($url) {
	$ch = curl_init();
	curl_setopt($ch,CURLOPT_URL,$url);
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
	$result = curl_exec($ch);
	curl_close($ch);
	return $result;
}

/* Получаем соответствие */
function get_match($regex,$content) {
	preg_match($regex,$content,$matches);
	return $matches;
}

/* Персоны для проверки */
$person1 = 'phpsnippets';
$person2 = 'catswhocode';

/* Отправляем запрос на twitter */
$url = 'https://api.twitter.com/1/friendships/exist';
$format = 'xml';

/* Проверка */
$persons12 = make_request($url.'.'.$format.'?user_a='.$person1.'&user_b='.$person2);
$result = get_match('/<friends>(.*)<\/friends>/isU',$persons12);
echo $result; // Возвращаем "true" или "false"

Что дает IPv6?

Документы, определяющие новый интернет-протокол организация Internet Engineering Task Force выпустила еще в середине 90-х, а официальный запуск работы протокола IPv6 на постоянной основе состоялся 6 июня 2012 года. Многие компании начали переходить на него и раньше, например Google — с 2008 г.

Номер «6» протокол получил потому, что имя IPv5 зарезервировали за экспериментальным протоколом реального времени, который так и не вышел «в серию». Но и не пропал совсем — многие заложенные в нем концепции можно найти в протоколе MLPS.

Благодаря 128-битной схеме адресации, заложенной в IPv6, количество доступных в нем сетевых адресов составляет 2 в 128 степени. Столь обширное адресное пространство делает ненужным применение NAT (адресов хватит всем) и упрощает маршрутизацию данных. Например, маршрутизаторы больше не должны фрагментировать пакеты, появилась возможность пересылки больших пакетов, размером до 4 Гбайт. Из IP-заголовка исключена контрольная сумма и т. д., поэтому несмотря на больший по сравнению с IPv4 размер адреса IPv6 (16 байтов вместо 4), заголовок пакета удлинился всего лишь вдвое: с 20 до 40 байт.

Speed Limit

Curl allows the user to set the transfer speed conditions that must be met to
let the transfer keep going. By using the switch and you can make
curl abort transfers if the transfer speed is below the specified lowest limit
for a specified time.

To have curl abort the download if the speed is slower than 3000 bytes per
second for 1 minute, run:

This can very well be used in combination with the overall time limit, so
that the above operation must be completed in whole within 30 minutes:

Forcing curl not to transfer data faster than a given rate is also possible,
which might be useful if you’re using a limited bandwidth connection and you
don’t want your transfer to use all of it (sometimes referred to as
«bandwidth throttle»).

Make curl transfer data no faster than 10 kilobytes per second:

or

Or prevent curl from uploading data faster than 1 megabyte per second:

When using the option, the transfer rate is regulated on a
per-second basis, which will cause the total transfer speed to become lower
than the given number. Sometimes of course substantially lower, if your
transfer stalls during periods.

Вирусы

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

Штатный антивирус не подойдет, поэтому лучше всего использовать утилиты вроде Kaspersky Rescue Disk, которые осуществляют проверку еще до старта ОС (их нужно записать на съемный носитель и загрузиться именно с него, установив соответствующий приоритет в настройках BIOS).

Информация о файле curl.exe

Процесс The cURL executable или The curl executable принадлежит программе The cURL executable или The curl executable или ReadCube от cURL, http://curl.haxx.se или curl, https://curl.haxx.se или pepsmich или cURL, https://curl.haxx.se.

Описание: curl.exe не является важным для Windows и часто вызывает проблемы. Curl.exe находится в подпапках «C:\Program Files».
Известны следующие размеры файла для Windows 10/8/7/XP 10,240 байт (50% всех случаев), 937,984 байт или 76,288 байт.  
Приложение не видно пользователям. Это не системный файл Windows. У файла нет информации о создателе этого файла.
Curl.exe способен мониторить приложения.
Поэтому технический рейтинг надежности 73% опасности.

Рекомендуем: Выявление проблем, связанных с curl.exe

  • Если curl.exe находится в подпапках «C:\Users\USERNAME», тогда рейтинг надежности 53% опасности. Размер файла 584,192 байт (25% всех случаев), 591,872 байт, 480,048 байт или 596,992 байт.
    Это не файл Windows. Приложение не видно пользователям. Вы можете удалить ReadCube, или попросить помощи у технической поддержки. Перейдите к ReadCube в Панели управления Windows (раздел Программы и компоненты) для удаления программы, или перейдите к labtiva.com Службе Поддержки Клиентов.
  • Если curl.exe находится в папке C:\Windows, тогда рейтинг надежности 44% опасности. Размер файла 490,496 байт (50% всех случаев) или 2,089,984 байт.
    Это неизвестный файл в папке Windows. Приложение не видно пользователям. Это не файл Windows.
    Curl.exe способен мониторить приложения.
  • Если curl.exe находится в подпапках C:\Windows, тогда рейтинг надежности 66% опасности. Размер файла 2,619,392 байт.

Проверка http заголовков с помощью Curl

Для проверки заголовков мы тоже можем использовать утилиту curl. Чтобы вывести заголовки страницы запустите ее с опцией -I:

Здесь отображается код ответа сервера, а также принятые http заголовки. Из них мы можем сделать такие выводы:

  • Страница сгенерирована в nginx 1.10.2;
  • Это обычная html страница (text/html);
  • Размер страницы 102452 байт или 100 кб;
  • Страница последний раз изменялась 18:13:12 (last_modified) это очень важный параметр для поисковых систем;
  • Сервер будет выдавать разные версии страниц при изменении поля Accept-Encoding (Vary);
  • Страница может храниться в любом кэше (public) на протяжении часа (expires);

Таким способом может быть выполнена проверка http заголовков для любой страницы или ресурса чтобы сразу определить все ли отправляется правильно. Например, посмотрим заголовки для изображения:

Мы можем видеть, что картинка будет храниться в кэше намного дольше (max-age) чем html страница.

Осталось проверить работают ли такие заголовки, как If-Modified-Since и If-None-Match. Первый позволяет выполнять проверку актуальности кэша по дате модификации, второй — по контрольной сумме поля ETag. Кэш очень важен, чтобы снизить нагрузку на ваш сервер. Если страница не изменилась, то сервер лишь сообщает что она не изменилась, отправляя код ответа 304, вместо передачи полного файла.

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

Проверка If-Modified-Since

Сначала запрашиваем нашу страницу для просмотра заголовков http, а затем копируем поле Last-Modified:

Теперь запрашиваем ее еще раз, но уже с заголовком If-Modified-Since: и ваша дата:

В ответ вы должны получить не саму страницу, а только заголовок HTTP/1.1 304 Not Modified. Если так, значит проверка кода ответа сервера пройдена и все работает верно.

Проверка If-None-Match

Заголовок If-None-Match работает похожим образом, только здесь используется значение контрольной суммы кэша из поля ETag. Опять запросим нашу страницу и скопируем сумму:

Затем отправим полученную сумму с заголовком:

И снова мы должны получить ответ 304, страница не изменена.

Проверка сжатия

Сжатие позволяет уменьшить размер передаваемых данных, но в то же время создает дополнительную нагрузку на сервер. Чтобы проверить поддерживает ли сервер сжатие gzip нужно отправить в запросе заголовок Accept-Encoding с параметром gzip:

В ответе мы увидим поле Content-Encoding: gzip. Это будет означать, что сжатие используется.

df

Команда df позволяет выводить:

  • Список подключенных устройств
  • Информацию о занятом месте
  • Точку монтирования

Основные опции df:

  • -h — выводить размеры в читаемом виде Мбайтах или Гбайтах;
  • -x – исключить из вывода указанные файловые системы.

Например, необходимо получить информацию в читаемом виде для раздела /dev/sdb7, тогда вводим:

Чтобы игнорировать псевдо-файловые системы squashfs, создаваемые при установке приложения с помощью команды snap, вводим:

Лучший способ освоить новые команды – больше практиковаться, а лучше всего это делать на серверах компании AlexHost, где:

  • Оперативная поддержка 24/7 круглый год
  • Собственные дата-центры
  • Полная анонимность
  • Качественный VPS всего от 70 рублей в месяц
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector