вебмастер, фидошник
0,1
рейтинг
23 января 2013 в 11:13

Разработка → Ошибка 451, ошибкою 404 имитируемая

Всякий, кому из-под «Ростелекома» или другого очевидно российского провайдера доводилось зайти по адресу http://drugoi.livejournal.com/3712998.html (занесённому в «чёрный список» за изображение политического самоубийства), уж конечно видал там козла и надпись «ошибка 451!»:

[козёл+надпись]

Однако можно воспользоваться любым средством просмотра заголовков HTTP-отклика и видеть, что на самом деле там выдаётся ошибка 404 («Not Found»).

Сходным образом обстоят дела и в движке Node.js: код 451 не добавят к списку заранее определённых кодов HTTP-отклика до тех пор, пока соответствующее предложение Google не станет стандартом.
Mithgol the Webmaster @Mithgol
карма
61,5
рейтинг 0,1
вебмастер, фидошник
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (26)

  • +3
    Как видно, бюрократия IETF решает дела слишком медленно. Код 451 был предложен летом прошлого года (на что отреагировали и на Хабрахабре), а воз и ныне там.
    • +10
      «Летом прошлого года», это всего пол года назад? Вполне нормальное время. Быстро только Office Open XML делается.
    • 0
      Даешь российский форк Node.js, учитывающий требования российского законодательства!
    • +6
      Другое дело, почему 404, а не более подходящий 403.
      • 0
        Нисколько не более подходящий. Вообще не подходящий

        То, что хотят сделать «кодом 451», не предполагает разрешения путём добавления субъекта в список или вроде того. Код означает: «в этой стране нельзя никому».

        Для 403 в принципе возможно разрешение доступа к ресурсу для отдельных субъектов, и этими правами доступа управляет владелец самого ресурса. Если пользователь не аутентифицирован, браузер предложит это сделать — выкинет окошко ввода логина и пароля.

        Представляете, если бы указанная страница выдавала 403 и у вас запрашивало бы логин с паролем? :)
        • +7
          Я запросом логина и пароля скорее 401 (Unauthorized), а 403 как раз больше подходит под случай «запрещено». Для примера – отключённый DirectoryIndex в апаче при запросе папки без файлов.
  • 0
    Мой провайдер почему-то игнорирует все эти «чёрные списки» и всё открывается. Пока ещё ни разу не попадал на заблоченную страницу.
    • +1
      В данном случае, ЖЖ сам закрывает страницу от просмотра.
      • 0
        Это я понял. Наверное, хорошо когда у провайдера ip-адреса не определяются как русские :)
  • –1
    Можно фигачить, например, 402 (Payment required). Всё равно никто не использует по назначению.
    • +2
      Используют =)
  • +1
    > код 451 не будет добавлен к списку допустимых кодов HTTP-отклика

    Допустимых или предопределённых? Т. е. даже принудительно вручную такой код нельзя вернуть, или же просто для этого нужно слегка усложнить код?

    Малознаком с Node.js, поэтому спрашиваю.
    • +1
      Этот вопрос вполне справедлив, и я внесу некоторое уточнение в свою блогозапись, устранив слишком жёсткое слово «допустимых».

      Вернуть код можно, а вот надписываться «Unavailable For Legal Reasons» он не будет.
  • +2
    var http = require('http');
    http.createServer(function (req, res) {
      res.writeHead(451, {'Content-Type': 'text/plain'});
      res.end('Hello World\n');
    }).listen(1337, '0.0.0.0')
    

    Проверил на node v 0.8.3 выдаёт то что нужно.

    И судя по патчу указанному в статье, не будет добавлено текстовое описание этого кода.
    • 0
      Эта поправка вполне справедлива, и я исправлю соответствующим образом свою блогозапись.
  • +1
    Спасибо! Хоть и читал про ошибку 451 на хабре, но не вспомнил бы про неё, если бы в жизни увидел.
  • 0
    Не понимаю. Предложено использовать 451 статус вместо 404… Но! Как стандарт это предложение еще не было принято. Не вижу никаких причин кому-то внедрять поддержку этого, если это не стандарт.
    • 0
      Почитайте 451 градус по Фаренгейту
  • +2
    451 — очень хороший номер для такой ошибки. Прямо таки идеальный.
    • +1
      Ну так его специально таким и сделали же. Там получается провал примерно в 30 значений до него, которые не используются.
  • +2
    Почему у них среди ссылок:

    Перейти на главную
    Почитать Справку
    Поискать страницу на карте сайта
    Посмотреть страницу с информацией о текущем состоянии ЖЖ

    нет ссылки «подобрать прокси-сервер»? :)
    • +1
      А я бы хотел календарик предстоящих митингов Пиратской Партии или других релевантных мероприятий видеть на каждом заблокированном кусочке Интернета. И у терпил–web–мастеров, и у терпил–провайдеров. Терпилы поставили бы на своих сайтах JavaScript, а те, кто этот скрипт делают, вывешивали бы посредством его и календарь, и ссылку на РосКомСвободу, и, возможно, другие бы способы перебирали, чего бы такого (законного) повесить на заблокированные страницы, чтоб после каждой блокировки цензорам плохело, а не хорошело.

      На lurkmore поросёнка поставили вместо календаря митингов, на ЖЖ — козла. Тoлько и могут, что хрюкать и блеять, стиснув зубы, пока их имеют. Такой хороший агитационный ресурс пропадает
  • +1
    Да! И строчку рядом с козлом лучше так: «На территории вашей страны просмотр этой страницы запрещен органами»! Так тоже правильно, но уже немного веселее! :)
  • +2
    Узнал автора по заголовку :-)
  • 0
    Ошибка 451: Поросёнок Пётр.
  • 0
    HTCPCP 418 давно пора воплотить.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.