Введение
Коды состояния HTTP подобны короткому сообщению от веб-сервера, сообщающему вам, как все прошло, когда он попытался обработать ваш запрос. Вы, вероятно, знакомы с такими распространенными ошибками, как 404 Not Found или 500 Internal Server Error. Но сталкивались ли вы когда-нибудь с кодом статуса 520? Это своего рода нишевый код, специфичный для Cloudflare, который может сбить с толку, если вы не знаете, что он означает и как его устранить.
Не волнуйтесь: к концу этой статьи вы станете экспертом по 520. Мы подробно расскажем, что означает код состояния 520, наиболее распространенные причины этой ошибки и практические шаги, которые вы можете предпринять, чтобы исправить и избежать появления 520, независимо от того, являетесь ли вы владельцем веб-сайта или выполняете какой-либо анализ веб-страниц. Давайте погрузимся!
Что такое код статуса 520?
Прежде всего, важно отметить, что 520 не является официальным кодом состояния HTTP, который вы найдете в спецификациях. Это собственный код статуса, созданный Cloudflare, популярной CDN и службой безопасности, которую используют многие веб-сайты. Таким образом, вы встретите 520 только на сайтах, использующих Cloudflare.
В своих документах Cloudflare классифицирует код состояния 520 как «Неизвестная ошибка». Полезно, правда? По сути, это означает, что исходный веб-сервер Cloudflare ответил чем-то неожиданным или недействительным.
Вы можете думать о Cloudflare как о посреднике между посетителями и реальным веб-сервером, на котором размещен сайт. Обычно Cloudflare принимает запрос, передает его исходному серверу, получает ответ и передает его обратно посетителю. Но если ответ исходного сервера ненормальный или отсутствует необходимая информация, Cloudflare не знает, что с ним делать, и выдает общий код состояния 520.
Распространенные причины ошибок 520
Существует ряд причин, по которым вы можете увидеть ошибку 520. Некоторые распространенные причины включают в себя:
1. Исходный сервер не работает. – Если реальный веб-сервер, стоящий за Cloudflare, выйдет из строя, выйдет из строя или станет недоступен, вы, скорее всего, получите 520.
2. Неверный HTTP-ответ. – Веб-серверы должны возвращать HTTP-ответы в правильном формате, включая строку состояния, заголовки и тело. Если что-то неправильно сформировано или отсутствует, это может вызвать ошибку 520.
3. Ошибки веб-приложения. – Если в реальном коде приложения, работающем на исходном сервере, есть ошибки, исключения или крайние случаи, которые возвращают ненормальные ответы, они могут быть переданы пользователю как 520.
4. Отсутствуют необходимые заголовки. – Некоторые сайты требуют, чтобы запросы включали определенные заголовки HTTP, например, для аутентификации, ограничения скорости или безопасности. Если их не учитывать, может возникнуть ошибка 520.
5. Автоматические запросы заблокированы. – Если сайт обнаруживает необычные шаблоны автоматических запросов, его система безопасности может заблокировать эти запросы, что часто приводит к общему коду 520, чтобы скрыть реальную причину.
Подводя итог, 520 обычно означают, что проблема связана с самим исходным веб-сервером или что в вашем запросе отсутствуют некоторые необходимые компоненты. Это неясная ошибка, и чтобы определить ее истинный источник, придется покопаться.
Как исправить и избежать ошибок 520
Теперь, когда вы понимаете, что означает ошибка 520 и некоторые ее распространенные причины, что вы можете с этим поделать? Ответ зависит от того, являетесь ли вы владельцем сайта, выдающего 520, или пытаетесь очистить сайт и избежать блокировки 520. Давайте рассмотрим несколько советов для каждого случая.
Владельцам веб-сайтов
Если вы видите ошибку 520 на своем веб-сайте, поддерживаемом Cloudflare, вот несколько шагов, которые вы можете предпринять для отладки и устранения проблемы:
Проверьте работоспособность сервера – Во-первых, убедитесь, что ваш исходный сервер действительно доступен и доступен. Используйте инструменты мониторинга, чтобы убедиться, что сервер отвечает на запросы и не перегружен.
Просмотр журналов ошибок – Проверьте журналы ошибок вашего сервера на предмет каких-либо исключений или ненормальных запросов, которые могут вызывать неверные ответы. Исправьте все основные ошибки.
Проверьте формат ответа – Убедитесь, что код вашего приложения всегда возвращает правильно отформатированные HTTP-ответы со статусом, заголовками и телом. Убедитесь, что крайние случаи учтены.
Настройка таймаутов запроса – Если некоторые запросы выполняются слишком долго и истекают по времени, вызывая 520 секунд, рассмотрите возможность увеличения настроек тайм-аута или оптимизации медленного кода.
Проверьте разные пути URL-адресов – Посмотрите, происходит ли ошибка 520 только на определенных страницах или шаблонах URL. Это может помочь изолировать код, требующий исправления.
Проверьте отсутствие заголовков – Если ваш код ожидает определенных заголовков, например для CORS или аутентификации, убедитесь, что эти требования задокументированы и обрабатываются должным образом.
Исправление ошибок 520 со стороны сервера часто представляет собой процесс устранения, проверки общих проблем и определения масштаба и причины. Общая ошибка 520 Cloudflare сама по себе не дает много подсказок.
Для веб-скребков
Если вы пытаетесь парсить веб-сайт, но вас блокируют коды статуса 520, вот несколько советов, как их обойти:
Проверьте отсутствие заголовков – Проверьте обычные шаблоны запросов сайта и убедитесь, что вы включили все ожидаемые заголовки, такие как User-Agent, Referer, Accept-Language и т. д.
Избегайте ненормальных шаблонов запросов – Распределяйте запросы и не заходите на сайт слишком быстро. Избегайте повторных попыток в случае сбоя. Рандомизируйте шаблоны доступа.
Используйте необнаружимые инструменты автоматизации – Безголовые браузеры, такие как puppeteer, легко обнаружить. Переключитесь на необнаружимый инструмент, например undetected-chromedriver.
Внедрить ротацию прокси – Меняйте IP-адреса запросов с помощью прокси-службы, чтобы избежать ограничений скорости и блокировок. Ротация IP-адресов центров обработки данных или жилых IP-адресов через такого провайдера, как ScrapingBee, может помочь избежать банов IP.
Проверьте URL-адреса запроса – Убедитесь, что запрашиваемые вами URL-адреса действительны и не изменились. Одна опечатка может вызвать 520 ошибок.
Уважайте robots.txt – Хотя это и не всегда необходимо, соблюдение правил файла robots.txt сайта часто помогает избежать жесткой блокировки, приводящей к появлению ошибок 520.
Ключом к тому, чтобы избежать 520 блоков при парсинге, является минимизация элементов, из-за которых ваши шаблоны запросов выглядят иначе, чем у обычных пользователей. Тщательное ограничение скорости, реалистичные заголовки и необнаружимые инструменты — это то, что вам нужно.
Заключение
Хотя код статуса 520 на первый взгляд может показаться расплывчатой и загадочной ошибкой, благодаря знаниям из этой статьи вы теперь должны иметь четкое представление о том, что это значит и как его исправить.
Помните, что 520 означает, что исходный сервер дал неожиданный ответ, возможно, из-за сбоя, неправильного форматирования HTTP, отсутствия заголовков безопасности или автоматической блокировки запроса. Как владелец веб-сайта, сосредоточьтесь на работоспособности сервера, правильной обработке ответов и требованиях к четкому заголовку для разрешения ошибок 520. А в качестве веб-скрейпера используйте шаблоны запросов, используйте необнаружимые инструменты и прокси и соблюдайте правила сайта. После некоторого анализа и итераций эти надоедливые ошибки 520 останутся в прошлом.