Перейти к содержимому

Как узнать заголовки http запроса

  • автор:

10 команд curl, которые вам следует знать

Команда Mail.ru Cloud Solutions перевела статью, автор которой составил краткий справочник часто используемых команд curl для протоколов HTTP/HTTPS. Это не замена официального руководства по cURL, скорее, краткий конспект.

cURL (расшифровывается как Client URL) — программное обеспечение, которое предоставляет библиотеку libcurl и инструмент командной строки curl. Возможности cURL огромны, во многих опциях легко потеряться.

curl — инструмент для передачи данных с сервера или на него, при этом используется один из поддерживаемых протоколов: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET и TFTP. Команда предназначена для работы без взаимодействия с пользователем.

Команда curl запускается из командной строки и предустановлена в большинстве дистрибутивов Linux.

Варианты применения:

  • доступ без браузера;
  • внутри shell-скриптов;
  • для тестирования API.

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

Если никакие аргументы не указаны, то команда curl выполняет HTTP-запрос get и отображает статическое содержимое страницы. Оно аналогично тому, что мы видим при просмотре исходного кода в браузере.

Free online network tools & utilities

Network tools category provides free access to essential online network monitoring, analyzing and possible problem detection tools. All network tools are free. They are simple, yet efficient. Enjoy!

  • Free online utilities
  • Featured online utilities

Online utilities category provides free access to most common daily use utilities for administrators, webmasters and power users. All online utilities are free and simple, yet efficient. Enjoy!

  • Free stuff
  • Featured stuff

Miscellaneous stuff category includes miscellaneous tools & utilities, benchmarking stuff and other stuff, too. Everything is available at no cost, is free and simple as possible. Use and enjoy!

Как узнать заголовки http запроса

Для чего предназначен инструмент «Проверка заголовков сервера»?

С помощью данного инструмента веб-мастер сможет узнать ответ сервера по интересующему ресурсу. Для этого необходимо ввести адрес сайта в верхней строке и определить его работоспособность, сверившись с таблицей «Перечень кодов HTTP», расположенной ниже.

Что такое заголовки сервера и для чего они нужны?

Различные устройства обмениваются между собой информацией с помощью протокола HTTP (аббревиатура от HyperText Transfer Protocol – «Протокол передачи гипертекста»), и заголовки в этом «общении» играют очень важную роль. В заголовке передается основная информация о соединении, которое устанавливается, и о передаваемых через это соединение данных.

Как работает инструмент «Проверка HTTP статусов» и для чего он нужен?

После того, как вы введете адрес ресурса и нажмете кнопку «Показать», сервер обработает запрос и выдаст результат. В самой верхней строке ответа вы увидите состояние (статус) сервера: например, HTTP/1.1 200 OK.

Что такое статус сервера?

Статусов у сервера – четыре, и они сгруппированы по назначению.

Коды 2xx обозначают, что запрос обработан успешно, и вы сможете узнать более подробную информацию о ресурсе.

Коды 3xx обозначают, что сервер перенаправил запрос и получить информацию о ресурсе можно другим способом.

Коды 4xx – это самая обширная группа статусов сервера, которая обозначают, что в запросе допущена ошибка.

Коды 5xx обозначают, что в работе запрашиваемого сервера произошел какой-то сбой, и получение информации об интересующем ресурсе пока невозможно.

Более подробно о статусах запросов вы можете узнать из таблицы «Перечень кодов HTTP» ниже.

Что такое метод GET и метод POST?

Существует три типа запросов, принимаемых сервером: GET, POST и HEAD, но мы поговорим о наиболее распространенных – первых двух. Третий метод используется достаточно редко, потому как HEAD запрашивает только заголовок ответа, а полноценный обмен данными при этом не происходит. Метод GET используется при запросе к серверу по умолчанию, а POST – только при однозначном указании в запросе формы. Веб-мастера должны учитывать, что при запросе методом GET серверу передаются все данные формы вместе с URL, а при использовании метода POST данные перемещаются не в URL, а в само тело запроса.

Коды 2xx (успешно)

Перечень кодов статуса HTTP, использующихся при успешном запросе (коды 2xx).

Успешный запрос ресурса. Если клиентом были запрошены какие-либо данные, то они находятся в заголовке и/или теле сообщения.

В результате успешного выполнения запроса был создан новый ресурс. Сервер должен указать его местоположение в заголовке Location. Серверу рекомендуется ещё указывать в заголовке характеристики созданного ресурса (например, в поле Content-Type). Если сервер не уверен, что ресурс действительно будет существовать к моменту получения данного сообщения клиентом, то лучше использовать ответ 202.

Запрос был принят на обработку, но обработка не завершена. Клиенту не обязательно дожидаться окончательной передачи сообщения, так как может быть начат очень долгий процесс.

Аналогично ответу 200, но в этом случае передаваемая информация была взята не из первичного источника (резервной копии, другого сервера и т. д.) и поэтому может быть неактуальной.

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

Сервер обязывает клиента сбросить введённые пользователем данные. Тела сообщения сервер при этом не передаёт и документ обновлять не обязательно.

Сервер удачно выполнил частичный GET возвратив только часть. В заголовке Content-Range сервер указывает байтовые диапазоны содержимого. Особое внимание при работе с подобными ответами следует уделить кэшированию.

Сервер передаёт результаты выполнения сразу нескольких независимых операций. Они помещаются в само тело сообщения в виде XML-документа с объектом multistatus.

Заголовок A-IM от клиента был успешно принят и сервер возвращает содержимое с учётом указанных параметров.

Коды 3xx (перенаправление)

Перечень кодов статуса HTTP, использующихся при перенаправлении запроса (коды 3xx).

Затребованный URL обозначает более одного ресурса, и робот не смог однозначно определить, к какой странице URL относится (получен код 300 Multiple Choices).

Исправьте заголовки или укажите ресурс правильно, и тогда робот сможет проиндексировать страницу.

Документ уже не используется сервером, а ссылка перенаправляет на другую страницу (получен код 301 Moved Permanently).

Так как пользователи не смогут увидеть подобные документы, показывать их в поиске не имеет смысла, и робот их не индексирует. Однако робот обязательно проиндексирует страницу, на которую установлено перенаправление.

Запрошенный ресурс временно находится под другим адресом (получен код 302 Found).

Так как пользователи не смогут увидеть подобные документы, показывать их в поиске не имеет смысла, и робот их не индексирует. Однако робот обязательно проиндексирует страницу, на которую установлено перенаправление.

Запрошенный ресурс находится под другим адресом и его следует запрашивать, используя метод GET (получен код 303 See Other). Если вы хотите, чтобы указанная страница находилась в поиске, она должна отвечать кодом 200.

Получен код 304 Not Modified. Если страница не изменилась с момента последнего обращения робота, рекомендуется выдавать этот код. Это ускорит индексирование и уменьшит трафик.

Доступ к затребованному ресурсу может осуществляться только через прокси-сервер, указанный в заголовке Location (получен код 305 Use Proxy).

Затребованный ресурс был временно переведен на другой адрес, который необходимо прописать в Location (получен код 307 Temporary Redirect).

Коды 4xx (ошибка клиента)

Содержит перечень кодов статуса HTTP, использующихся для обозначения возможных ошибок в клиентском запросе (коды 4xx).

Запрос не может быть понят сервером из-за некорректного синтаксиса (получен код 400 Bad Request).

Для доступа к документу необходимо вводить пароль или быть зарегистрированным пользователем (получен код 401 Unauthorized).

Внутренняя ошибка или ошибка конфигурации сервера (получен код 402 Payment Required).

Доступ к документу запрещен (получен код 403 Forbidden). Если вы хотите, чтобы страница индексировалась, необходимо разрешить доступ к ней.

Документ не существует (получен код 404 Not Found). Если вы удалили какой-то раздел сайта, можно с помощью robots.txt запретить роботу обращаться к нему. Если такой страницы на сайте никогда не существовало, игнорируйте эту ошибку, возможно, кто-то поставил некорректную ссылку на ваш сайт.

Метод, определенный в строке запроса (Request-Line), не дозволено применять для указанного ресурса, поэтому робот не смог его проиндексировать (получен код 405 Method Not Allowed).

Нужный документ существует, но не в том формате (язык или кодировка не поддерживаются роботом). Получен код 406 Not Acceptable.

Необходима регистрация на прокси-сервере (получен код 407 Proxy Authentication Required).

Сайт не передал полный запрос в течение установленного времени и робот разорвал соединение (получен код 408 Request Timeout).

Запрос конфликтует с другим запросом или с конфигурацией сервера (получен код 409 Conflict).

Затребованный ресурс был окончательно удален с сайта (получен код 410 Gone).

Сервер отказывается принимать запрос без определенного заголовка Content-Length (получен код 411 Length Required). Поправьте заголовки на своем сервере;— тогда в следующий раз робот сможет проиндексировать страницу.

При проверке на сервере одного или более полей заголовка запроса обнаружено несоответствие (сбой или ошибка при обработке предварительного условия). Получен код 412 Precondition Failed.

Сервер отказывается обрабатывать запрос потому, что размер запроса больше того, что может обработать сервер (получен код 413 Request Entity Too Large).

Сервер отказывается обслуживать запрос, потому что запрашиваемый роботом URI (Request-URI) длиннее, чем сервер может интерпретировать (получен код 414 Request-URI Too Long).

Сервер отказывается обрабатывать запрос, потому что тело запроса имеет неподдерживаемый формат (получен код 415 Unsupported Media Type).

Сервер отказывается обрабатывать запрос, потому что значение поля Range в заголовке запроса указывает на недопустимый диапазон байтов (получен код 416 Requested Range Not Satisfiable).

Сервер отказывается обрабатывать запрос, потому что значение поля Expect в заголовке запроса не соответствует ожиданиям (получен код 417 Expectation Failed).

Сервер не в состоянии обработать один (или более) элемент запроса (получен код 422 Unprocessable Entity).

Сервер отказывается обработать запрос, так как один из требуемых ресурсов заблокирован (получен код 423 Locked).

Сервер отказывается обработать запрос, так как один из зависимых ресурсов заблокирован (получен код 424 Failed Dependency).

Сервер запросил апгрейд соединения до SSL, но SSL не поддерживается клиентом (получен код 426 Upgrade Required).

Коды 5xx (ошибка сервера)

Перечень кодов статуса HTTP, использующихся для обозначения возможных ошибок сервера (коды 5xx).

Сервер столкнулся с непредвиденным условием, которое не позволяет ему выполнить запрос (получен код 500 Internal Server Error).

Сервер не поддерживает функциональные возможности, требуемые для выполнения запроса (получен код 501 Not Implemented). Этот ответ соответствует состоянию, когда сервер не распознает метод запроса и не способен обеспечить его для любого ресурса.

Сервер, действуя в качестве шлюза или прокси-сервера, получил недопустимый ответ от следующего сервера в цепочке запросов, к которому обратился при попытке выполнить запрос (получен код 502 Bad Gateway).

Возникла ошибка из-за временной перегрузки или отключения на техническое обслуживание сервера (получен код 503 Service Unavailable).

Сервер, при работе в качестве внешнего шлюза или прокси-сервера, своевременно не получил отклик от вышестоящего сервера, к которому он обратился, пытаясь выполнить запрос (получен код 504 Gateway Timeout).

Сервер не поддерживает или отказывается поддерживать версию HTTP-протокола, которая используется в сообщении запроса робота (получен код 505 HTTP Version Not Supported).

Сервер не может обработать запрос из-за недостатка места на диске (получен код 507 Insufficient Storage).

Сервер не может обработать запрос из-за того, что запрашиваемое расширение не поддерживается (получен код 510 Not Extended).

Добавить комментарий

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

Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar