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

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

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

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

    Сходным образом обстоят дела и в движке Node.js: код 451 не добавят к списку заранее определённых кодов HTTP-отклика до тех пор, пока соответствующее предложение Google не станет стандартом.
    Метки:
    Поделиться публикацией
    Комментарии 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). Всё равно никто не использует по назначению.
            • +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 давно пора воплотить.

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