33
Это, как я называю обслуживание с.NET:
Var requestedURL = "https://accounts.google.com/o/oauth2/token?code=" + code + "&client_id=" + client_id + "&client_secret=" + client_secret + "&redirect_uri=" + redirect_uri + "&grant_type=authorization_code"; HttpWebRequest authRequest = (HttpWebRequest)WebRequest.Create(requestedURL); authRequest.ContentType = "application/x-www-form-urlencoded"; authRequest.Method = "POST"; WebResponse authResponseTwitter = authRequest.GetResponse();
Но когда этот метод вызывается, я получаю:
Exception Details: System.Net.WebException: The remote server returned an error: (411) Length Required.
что я должен делать?
Сортировка:
Активность
54
Когда вы используете метод HttpWebRequest и POST, вам необходимо установить контент (или тело, если хотите) через RequestStream. Но, согласно вашему коду, использования authRequest.Method = "GET" должно быть достаточно.
В случае, если вам интересно о формате POST, вот что вы должны сделать:
ASCIIEncoding encoder = new ASCIIEncoding(); byte data = encoder.GetBytes(serializedObject); // a json object, or xml, whatever... HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; request.Method = "POST"; request.ContentType = "application/json"; request.ContentLength = data.Length; request.Expect = "application/json"; request.GetRequestStream().Write(data, 0, data.Length); HttpWebResponse response = request.GetResponse() as HttpWebResponse;
8
Когда вы делаете POST HttpWebRequest, необходимо указать длину данных, которые вы отправляете, что-то вроде:
String data = "something you need to send" byte postBytes = Encoding.ASCII.GetBytes(data); request.ContentLength = postBytes.Length;
если вы не отправлять какие-либо данные, просто установите его в 0, что означает, что вы просто нужно добавить в код строку:
Request.ContentLength = 0;
Обычно, если вы не отправлять какие-либо данные, они выбрали метод GET вместо мудрее, как вы можете видеть в HTTP RFC
1
Хотя обычно можно было бы ожидать, посылаемые данные с POST, было бы неправильно и плохая практика, чтобы использовать GET, когда вы * изменение * данных на сервере. Запрос POST должен избегать прокси-кэшей между клиентом и сервером. GET в порядке, если данные извлекаются с сервера без каких-либо изменений на сервере в результате запроса. - Michael 04 апр. 16 2016-04-04 04:57:58
1
System.Net.WebException: The remote server returned an error: (411) Length Required.var request = (HttpWebRequest) HttpWebRequest.Create(requestUri); request.Headers.Add("x-ms-version", "2012-08-01"); request.Method = "POST"; request.ContentType = "application/xml";This is a pretty common issue that comes up when trying to make call a REST based API method through POST. Luckily, there is a simple fix for this one.
This is the code I was using to call the Windows Azure Management API. This particular API call requires the request method to be set as POST, however there is no information that needs to be sent to the server.
To fix this error, add an explicit content length to your request before making the API call.
request.ContentLength = 0;
2
var requestedURL = "https://accounts.google.com/o/oauth2/token?code=" + code + "&client_id=" + client_id + "&client_secret=" + client_secret + "&redirect_uri=" + redirect_uri + "&grant_type=authorization_code"; HttpWebRequest authRequest = (HttpWebRequest)WebRequest.Create(requestedURL); authRequest.ContentType = "application/x-www-form-urlencoded"; authRequest.Method = "POST"; //Set content length to 0 authRequest.ContentLength = 0; WebResponse authResponseTwitter = authRequest.GetResponse();
Свойство ContentLength содержит значение для отправки в качестве Content-length HTTP заголовка с запросом.
Любое значение, отличное от -1 в ContentLength собственности указывает на то, что данные запроса загрузки и что только методы, которые загружать данные могут быть установлены в свойстве метода.
После того, как свойство ContentLength устанавливается в значение, то число байтов должны быть записаны в поток запроса, который возвращается посредством вызова метода GetRequestStream или как BeginGetRequestStream и EndGetRequestStream методы.
для более подробной информации нажмите
Данные коды (их еще называют http-статусы) посылаются веб-сервером хостинга в ответ на запрос пользователя, который идет через его браузер. Говоря проще, пользователь хочет зайти на определенный сайт и клацает ссылку в браузере. Браузер посылает запрос на сервер хостинг-провайдера, а тот ему в ответ посылает код, исходя из которого браузер делает определенное действие (показывает сайт\показывает ошибку\показывает не то, что запросил пользователь).
Сообщает о том, что сервер принял первую часть запроса, и можно продолжать посылать остальные части.
Сервер (по требованию браузера) переключил протоколы. Это задание передается серверу в заголовке Upgrade.
Сервер обработал запрос браузера (пользователя) и передал ему то, что он хотел. А пользователь должен увидеть сайт или файл, который запрашивал.
Код сообщает, что сервером создан новый идентификатор URI. В ответе сервера (заголовок Location) можно найти место куда именно были помещены созданные данные.
Сервер принял запрос, но будет обрабатывать его позже. К тому же, в конечном счете нельзя быть уверенным на 100%, что сервер обработает Ваш запрос. Ищите детальную информацию о причинах в сообщении, которое приходит вместе с кодом ошибки.
Сервер передал запрашиваемую информацию, но сообщает о том, что взял ее на другом сервере или же из собственной копии.
Этот код показывает браузеру, что его запрос принят, но ответ на него пустой, и браузеру не нужно ничего делать. Чаще всего это происходит, когда пользователь клацает по пустому месту страницы или по картинке (без ссылки).
Сообщает о том, что нужно очистить одну или несколько форм, в которые могли быть заполнены данные. Чаще всего используется для очистки форм сообщений или любых других форм ввода информации.
Сервер принял запрос и вернул только определенную часть данных, которые были запрошены. Какую именно часть нужно вернуть серверу, указывается в заголовке запроса пользователя Range. А сервер указывает это в своем ответе (смотрите заголовок Content-Range).
Код показывает, что один и тот же URL ведет к нескольким документам или страницам. Примером может служить одна и та же страница переведенная на несколько языков. Более подробно о причине ошибки, нужно узнавать в теле ответа сервера. Но чаще всего проблема кроется в заголовках или адресах объектов, и если указать их правильно, то ошибка исчезнет. Важно знать, что данная ошибка может вредить правильной индексации Вашего сайта поисковиками.
Пользователь запросил объект (страницу), который уже не используется сервером. А сервер в свою очередь перенаправляет пользователя на другую страницу, которая и отображается в браузере. Важно понимать, что поисковый робот перестанет индексировать исходную страницу, и вместо нее будет индексировать ту, на которую идет перенаправление. Этот способ чаще всего используется для редиректа - перенаправленния с одной страницы на другую. Для этого в файле.htaccess прописываем:
Redirect 301 /page1.html http://вашсайт.ru/page2.html
Данный код похож по своему смыслу на код 301, но лишь с тем отличием, что старый объект временно недоступен, и вместо него показывается новый. Чаще всего этот отображается в случае если с текущей страницей ведутся работы, и вместо нее подставляется ее дубликат, но с другим адресом.
Сообщение говорит о том, что запрошенный пользователем объект (страница) находится по другому адресу, и доступ к нему нужно получать GET-запросом. Новый адрес указывается в заголовке Location.
Этот код показывает, что страница не изменялась с определенного времени и браузер может использовать старую версию (которая скорее всего сохранена в его памяти). Это позволяет не загружать заново страницы, которые не подвергались изменению, что ускоряет время их загрузки. Также это позволяет ускорить индексацию сайта поисковыми роботами, сократить трафик и нагрузку на сервер.
Доступ к объекту (странице сайта) может быть разрешен только с помощью proxy-сервера, адрес которого указывается в заголовке Location.
Код почти идентичен 302 Moved Temporarily, но более валидный.
Сервер не понял запрос браузера пользователя из-за синтаксической ошибки.
Эта ошибка сообщает, что для доступа к запрашиваемой странице нужно быть авторизованным.
Данный код очень редко используется, и означает скорее проблемы с конфигурацией сервера, чем проблемы с оплатой услуг.
Ошибка сообщает о том, что доступ к данной странице запрещен, или же сервер не может его предоставить.
Объект (страница сайта), который хочет увидеть пользователь не найден. Обычна причина в том, что случайно удалена запрашиваемая страница, или же ее адрес введен не правильно.
В запросе (строка Request-Line) указан такой метод, который не поддерживается сервером. Часто это происходит при отправке POST-данных на неправильную страницу. Соответственно, чтобы решить эту проблему проверьте правильность указанного пути (атрибут action).
Пользователь пытается посмотреть документ, который существует на сервере, но имеет кодировку\язык\формат, которые не поддерживаются у пользователя. В итоге нужно искать причину в заголовках Content-Language, Content-Encoding или Content-Type.
Сообщает о том, что запрос proxy-сервера должен быть санкционирован (заголовок Proxy-Authenticate).
Пользователь не передал полный запрос в течении какого-то времени (задается на сервере). И из-за этого сервер разорвал соединение с пользователем, передав ему ошибку 408. В данном случае нужно проверить настройки браузера и файервола, т.к. в большинстве случаев именно они являются корнем проблемы.
Запросы, который посылает пользователь конфликтует с сервером или другим запросом. Данная проблема имеет множество причин, описывать которые не имеет смысла. Для ее решения лучше сразу обратиться к хостинг-провайдеру, чтобы сэкономить время.
Пользователь пытается посмотреть объект (страницу сайта), который не существует. Но раньше он существовал, и был навсегда удален с сервера.
Запрос не будет принят сервером, пока не определится заголовок Content-Length.
Запрос передаваемый на сервер очень большой, поэтому сервер его не может обработать. Все подробности нужно смотреть в содержании ответа, т.к. там и кроется причина данной ошибки.
URL который запрашивает пользователь слишком длинный, поэтому сервер не может его обработать. Для решения проблемы проверьте правильность URL и его длинну, а также обратите внимание на атрибут Request-URI.
Сервер не поддерживает формат запроса пользователя, поэтому не может его обработать.
Сервер не сможет выполнить запрос, пока значение поля Range не станет корректным (задается в байтах).
Обычно эта ошибка возникает из-за того, что значение поля запроса Expect является некорректным.
Одна или несколько частей не могут быть обработаны сервером.
Запрашиваемый объект (страница сайта) заблокирован.
Один из ресурсов (зависимых) недоступен или блокирован, поэтому сервер не может дать доступ к нему.
Сервер принял запрос по стандартному соединению, но запрашивает SSL-соединение, которое не поддерживается клиентом. В итоге сервер выдает ошибку 426.
Данный код сообщает, что на сервере произошла внутренняя непредвиденная ошибка или аварийный отказ.
Сервер не смог понять запрос, который ему передали. Причин этой ошибки множество, поэтому сразу обращайтесь в службу поддержки хостинга.
Браузер пользователя послал запрос к серверу, но тот связан с еще несколькими серверами, между которому происходит цепочка переадресации запроса. Где-то в этой цепочке сервер не смог обработать запрос, и первый в цепочке сервер (который принял Ваш запрос) послал Вам код ошибки 502.
Эта ошибка означает, что сервер временно перестал работать. Как правило это происходит если он находится в состоянии перезагрузки или отключен на временное обслуживание. Если вместе с сообщением об ошибке пришел параметр Retry-After, то его значение и будет тем временем, через которое сервер должен восстановить работу.
Сервер (который принял запрос от пользователя) может находиться в цепочке серверов и передает запросы к конечному серверу, который их обрабатывает. В случае с ошибкой 504 первый сервер не получил ответ от вышестоящего сервера и отправил Вам сообщение об этом.
Пользователь отправил серверу запрос с версией http-протокола, который не поддерживается.
Места на диске недостаточно, и сервер не может обработать запрос пользователя. Или освободите место самостоятельно, или обратитесь в службу поддержки, т.к. в случае с виртуальным хостингом (или VPS) на Вашем сервере находятся еще и сайты других пользователей, удалить которые Вы не сможете.
Расширение запрашиваемого файла не поддерживается или отсутствует.
Мониторинг сайтов — система инструментов, позволяющая отслеживать работоспособность вашего сайта или сервера. Система производит периодическую проверку сервера по заданным параметрам и сообщает о выявляемых ошибках, а вы получаете своевременные уведомления об изменениях.
Вы можете проверять доступность любого сайта через определённые настраиваемые периоды времени. Результаты проверки будут отправляться на указанный e-mail и по SMS. Помимо всего прочего, в платной версии вы сможете контролировать позицию вашего сайта в поисковой выдаче (Топ-10) по определённому ключевому запросу.
Статистика мониторинга
Чтобы начать пользоваться услугой, перейдите в раздел . На открывшейся промостранице услуги нажмите Попробовать бесплатно , если хотите в течение одного месяца использовать бесплатный тариф с ограниченным функционалом.
Чтобы заказать платную версию услуги:
Опционально: подключите дополнительный пакет SMS-уведомлений.
Обратите внимание! Пакет дополнительных SMS-уведомлений не удаляется и средства за него не возвращаются.
Готово! Услуга «Мониторинг сайта» будет заказана.
SMS-уведомления SMS-уведомления на номер мобильного телефона, активированный в Личном кабинете на сайте сайт.
Отслеживание позиции в поисковых системах Позволяет отслеживать нахождение вашего сайта в топ-10 в поисковой выдаче по желаемому ключевому запросу.
Приобретение дополнительныx пакетов для SMS-уведомлений Возможность приобрести дополнительные пакеты для SMS-уведомлений и регулировать количество необходимых вам мониторов.
Cокращённый интервал проверки доступности сайта Возможность сократить интервал проверки доступности сайта с одного часа до минуты.
Для того чтобы перейти с бесплатной версии на платную:
Продление услуги по тарифу «Пробный» невозможно. Для того чтобы продлить услугу Мониторинг сайтов по тарифу «Коммерческий», выполните следующее:
После продления приостановленной услуги вам необходимо самостоятельно включить мониторы в настройках услуги.
Монитор — средство обращения к определённому сайту по заданным настройкам. По умолчанию в рамках услуги «Система мониторинга сайтов» предоставляется пять мониторов. Для того чтобы добавить новый монитор, в панели управления услугой выберите Добавить монитор . На открывшейся странице в поле «Название монитора» укажите удобный для вас идентификатор данного монитора. В поле «URL сайта» добавьте адрес интересующего вас сайта.
Вы можете установить свои настройки для каждого монитора.
Проверка доступности сайта представляет собой GET-запрос по URL проверяемого сайта. Если возвращается код ошибки, монитор отправляет уведомление на e-mail и SMS (при подключенных SMS-уведомлениях и наличии неизрасходованных SMS). Уведомления отправляются, как только сайт стал недоступен. Затем, если он в течение пяти часов по-прежнему будет недоступен, вы получите новое уведомление. Как только сайт снова станет доступен, вам на e-mail или по SMS придёт соответствующее сообщение.
Вы можете установить интервал проверки вплоть до минуты.
Данный тип проверки показывает наличие в исходном коде запрашиваемой строки, которая вводится в текстовом поле «Искомая строка». Исходный код страницы сайта можно посмотреть, нажав на ней комбинацию клавиш «Ctrl» + «U» . Уведомления отправляются в тот момент, когда система не находит строку на сайте.
В настройках услуги установлены фиксированные временные промежутки, через которые будет происходить проверка доступности сайта. Данные параметры выбираются в выпадающем меню с шагом до одной минуты.
Для монитора «Отслеживание позиции сайта в поисковых системах» период тестирования изменить невозможно.
Установленная галочка «Плановые отключения» отключает проверку доступности интересующих вас сайтов на определённые дни, которые вы можете выбрать в виджете календаря. Это может понадобиться, например, в случае работ на сервере, DDoS-атак и пр.
В разделе «Уведомления» вы можете подключить или отключить уведомления по электронной почте, добавить новый e-mail для оповещений, а также SMS-уведомления о недоступности сайтов для конкретного монитора.
К настройкам монитора всегда можно вернуться из панели управления мониторами в пункте «Настройки». По окончании настройки необходимо нажать Создать монитор .
Для того чтобы отключить ранее созданный монитор, переведите переключатель в разделе «Состояние» в положение «OFF». После этого вы получите сообщение «Сбор данных приостановлен» .
Чтобы удалить ранее созданный монитор в Личном кабинете, в разделе , кликните по услуге Мониторинг сайтов по тарифу «Коммерческий» и перейдите в панель управления услугой. На мониторе, который хотите удалить, нажмите Удалить .
В данном отчёте можно посмотреть статистику работоспособности сайта за периоды от одного дня до года. Также вы можете посмотреть отчёт о работоспособности сайта за определённый период, нажав на Показать за период
и выбрав даты запрашиваемого периода в иконке календаря. Отчёты можно сохранять в pdf-файл с помощью Сохранить в файл
. Значение Uptime указывает на общее время доступности сайта за запрашиваемый период. Значение «Отказов» указывает на общее время недоступности. Поля Total Uptime и «Отказ» предназначены для оценки доступности сайтов с момента заказа услуги по настоящее время.
В данном отчёте можно выбрать географическое местоположение сервера, с которого производилась проверка, результат проверки «ОК» или «Отказ». Поле «Размер» говорит о размере полученных от сервера данных. Поле «Время ответа» говорит о времени ответа на запрос от сервера.
Экспресс-проверка — это проверка состояния доступности интересующего вас сайта на текущий момент времени. Результаты проверки доступны в разделе «Посмотреть отчёты». Для каждого монитора, согласно тарифному плану, предоставляется три экспресс-проверки в сутки.
Экспресс-проверка
Для монитора «Отслеживание позиции в поисковых системах» данный тип проверки не предусмотрен, поскольку позиция проверяется один раз в сутки и время проверки не фиксировано.
В сводной статистике монитора «Отслеживание в поисковых системах» отображается график изменения позиций вашего сайта в поисковой выдаче. Зелёный столбец графика означает, что позиция сайта в поисковой системе выросла, красный — упала. Серый столбец на графике означает, что сайт находится не в Топ-10 поисковой выдачи. Вы можете просмотреть график и отчёты за определённый период времени: неделю, месяц, год. В таблице отображается информация о дате проверки, поисковой системе, позиции и регионе проверки (для поисковой системы «Яндекс»). Позиция сайта в течение дня может изменяться несколько раз в день.
У вас также есть возможность сохранять отчёты в pdf-файл для дальнейшего анализа.
По умолчанию на платном тарифе услуги «Система мониторинга сайтов» доступно 50 SMS-уведомлений, но в процессе заказа вы можете установить галочку «Пакет дополнительных SMS-сообщений» и в выпадающем меню выбрать количество SMS в пакете. SMS-уведомления подключаются/отключаются в настройках создаваемого вами монитора через чекбокс «Получать SMS-уведомления».
По умолчанию используется номер телефона, активированный в Личном кабинете.
Если по каким-то причинам у вас закончился пакет SMS, вы сможете пополнить его из Личного кабинета.
Чтобы подключить дополнительные уведомления:
Готово! Дополнительные SMS-уведомления будут подключены.
«400 Bad Request» . Ошибка означает, что сервер обнаружил в запросе клиента синтаксическую ошибку;
«401 Unauthorized» . Этот код результата, передаваемый с заголовком WWW-Authenticate, показывает, что пославший запрос пользователь не имеет необходимых полномочий, и что при повторении запроса с указанием данного URL пользователь должен такие полномочия предоставить;
«402 HTTP Payment Required» . Этот код в HTTP еще не реализован;
Мы часто говорим, ошибка 404, ошибка 403, 301, ошибка 503 и друг друга отлично понимаем. И примерно понимаем, что нужно делать в данной ситуации. Данная статья направлена на тех, кто только начинает во всё этом разбираться, чтобы мы все могли говорить на одном языке.
На каждый запрос пользователя сервер дает определенный ответ. На стороне пользователя браузер анализирует этот ответ и понимает, что делать дальше: прогружать страницу сайта, давать запрет на доступ, или перенаправлять пользователя на .
Именно по кодам ответа ищутся на сайте . Это самый простой и надежный способ.
Коды ответа делятся по числовым значениям
Некоторые ошибки являются временными (например, 503), а некоторые делают работу сайта невозможной.
Узнайте всё о различных ошибках в браузере и о том, как на них правильно реагировать.
Народная мудрость гласит, что не ошибается лишь тот, кто только сидит на печи... Различного рода ошибки сопровождают нас практически везде. Не является исключением и любимый всеми Интернет. То при попытке зайти на нужный сайт браузер нам выдаст ошибку сервера, то скажет, что такой страницы не существует, а то вообще заявит, что у нас нет соединения!
Ошибок, которые может выдавать браузер, существует довольно много, поэтому нам, как пользователям, важно различать их и адекватно на них реагировать. Собственно, этому вопросу и будет посвящена сегодняшняя статья.
Все ошибки, которые выдаёт нам браузер, можно разделить на несколько групп:
Кроме вышеупомянутых ошибок, сервер может выдавать ещё ряд кодов состояния, начинающихся с чисел 100 (информационные сообщения), 200 (коды успешной обработки запроса) и 300 (коды перенаправлений). Эти коды состояния, как правило, не визуализируются в браузере, однако могут быть просмотрены в заголовках ответов при использовании инструментария разработчиков браузера. Кстати, нормой считается ответ 200 OK или 301 Moved Permanently с корректным перенаправлением на новый адрес страницы:
Предлагаю рассмотреть наиболее популярные ошибки и ответы сервера немного подробнее.
Как уже было сказано выше, наиболее частой ошибкой, которую видит пользователь в браузере, является 404 Not Found . Это корректный ответ сервера в случае, если Вы запросили несуществующую страницу. Это может случится как по Вашему недосмотру (например, при ручном вводе адреса), так и по вине администрации посещаемого Вами сайта (например, страница была перемещена, но для неё не было прописано никаких правил перенаправления).
В любом случае, если Вы видите страницу 404 или 400 Bad Request, первым делом внимательно проверьте правильность адреса в адресной строке. Часто бывает, что даже в ссылках, по которым Вы переходите, закрадываются ошибки, которые видны с первого взгляда и могут быть сразу же исправлены:
Если ни один из вариантов выявления ошибок Вам не помог, Вы вполне можете воспользоваться подсказками, которые владельцы сайта дают на этой же самой странице 404: поиск по сайту, похожие статьи и т.п. Например, на нашем сайте выгладит так:
Однако, не только 404 ошибка часто попадается на глаза. Среди второй по популярности можно назвать ошибку 403 Forbidden и её вариант 401 Unauthorized . Возникают данные ошибки, как нетрудно догадаться, вследствие попытки пользователя получить доступ к определённой закрытой информации, которая требует для отображения авторизации на веб-ресурсе.
Страница 403 на многих сайтах тоже оформляется в виде различных креативных решений и может содержать ссылки на главную страницу, форму авторизации или регистрации. В любом случае обойти ошибку 403 без регистрации на сайте не удастся.
Некоторые серверы могут возвращать ошибку 414 Request-URL Too Long . Возникает она тогда, когда длина адреса запрашиваемого ресурса (со всеми GET-параметрами) превышает определённый лимит количества символов (обычно 128 или 256).
Попробовать избежать подобной ошибки можно, убрав в адресной строке все символы, идущие после знака вопроса (включая сам знак). Например, из адреса типа: "https://www.site.name/page.php?name=Vasya&lastname=Pupkin " нужно сделать URL вида: "https://www.site.name/page.php ". Правда, если авторизация на таком сайте происходит через передачу GET-параметров, то мы можем получить вышеупомянутые ошибки 401 или 403:).
Различных ошибок на клиентской стороне существует гораздо больше, нежели описано выше, но на практике они почти не встречаются. Зато сплошь и рядом случаются серверные ошибки... Все они имеют коды, начинающиеся числом "500", а сама ошибка 500 Internal Server Error может означать любой сбой сервера и встречается наиболее часто.
Некоторые веб-разработчики также креативно оформляют данную страницу ошибки, но делается это на чистом HTML, не требующем никакой предварительной обработки сервером, который в данный момент не работает. К сбою сервера могут привести различные ситуации, однако, почти все они никак не связаны с действиями клиента, соответственно, не могут быть решены на стороне пользователя.
Всё, что мы можем попытаться сделать для устранения ошибки - обновить страницу с очисткой кеша (в большинстве браузеров нужно нажать на кнопку обновления страницы с зажатым SHIFT или нажать клавишу F5). Если это не помогает, можно попробовать удалить куки и прочие временные файлы (проще всего программой CCleaner). Гарантии восстановления работоспособности сайта это не даст, но зато Вы будете точно знать, что проблема не у Вас.
Кроме ошибки 500 сервер может выдать и более информативные коды. Наиболее часто в данной группе встречаются ошибки 502 Bad Gateway, 503 Service Unavailable и 504 Gateway Timeout. 503 ошибка, увы, особо ситуацию не проясняет, зато ошибки 502 и 504 уже являются более конкретными.
При возникновении ошибки 502 Bad Gateway мы можем констатировать, что в цепочке серверов, отвечающих на наш запрос, где-то наблюдается сбой. Соответственно мы можем попытаться зайти на нужный нам сайт по другой цепочке, воспользовавшись анонимайзером или VPN -подключением.
Ошибка 504 Gateway Timeout возникает при превышении лимита времени ожидания сервера. Чаще всего это сугубо серверная ошибка, на которую мы повлиять не можем. Однако, если Вы умышленно передаёте серверу какой-либо сложный запрос и получаете такой код ответа, то Вам следует упростить URL и попытаться снова.
Ошибки клиента и сервера, которые имеют номера 4хх и 5хх практически всегда визуализируются браузером. Однако, это далеко не все возможные ответы сервера. Сотые, двухсотые и трёхсотые коды, как правило, не отображаются, но на их основе браузер может определять своё дальнейшее поведение.
Наиболее показательным в данном контексте является ответ 301 Moved Permanently . Он относится к ответам перенаправления (трёхсотые) и сообщает браузеру, что запрашиваемая им страница была навсегда перемещена по новому адресу. Если адрес задан верно, то веб-обозреватель автоматически перейдёт по выданной сервером ссылке. Если же нет, то выдаст такую ошибку:
Не зная нового адреса, попасть на нужную страницу мы можем, разве что, воспользовавшись поиском по сайту (если он есть).
Вообще 301 редирект (как ещё принято называть данный ответ сервера) играет очень важную роль в вебе. Например, он учитывается поисковыми системами при ранжировании и позволяет перенести весь "вес" страницы на любой новый адрес. Эту возможность использует большинство современных сайтовых движков для правильного оформления ЧПУ .
Наряду с ответом 200 OK , который сообщает об успешной загрузке страницы, 301 Moved Permanently является одним из допустимых успешных ответов сервера. Кроме того, об успехе выполнения запроса свидетельствуют практически все двухсотые ответы (за исключением 204 No Content, который считается успешным, но не возвращает никакого содержимого), а также ряд трёхсотых:
Кроме того, существует небольшая группа сотых ответов, которая называется информационной . Информационные ответы 100 Continue, 101 Switching Protocols и 102 Processing просто дают браузеру команду продолжать работу в текущем режиме, переключить протокол или подождать завершения обработки запроса, соответственно. Эти коды никак не визуализируются, но знать о них всё же не помешает:)
Ошибок страниц и ответов сервера существует довольно большое количество, но знать их все необязательно (достаточно просто понимать их природу). Гораздо важнее запомнить, что можно сделать, чтобы получить доступ к нужным страницам. И здесь вариантов не так уж много:
Вот и все премудрости:) Успешного и безошибочного Вам Интернет-сёрфинга!
P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.