Комментарии 40
308 — давно пора!
Location на хэштег — хм, оно же и сейчас вполне работает?
Location на хэштег — хм, оно же и сейчас вполне работает?
Здорово, супер! Да и мысли здравые! Но почему, почему было не назвать его «1.2»?
«Переписывание истории» — то, за что ругают политиков, а здесь такое переписывание не чего-нибудь, а стандарта. Так теперь и будем говорить, писать и читать — «ПО поддерживает HTTP 1.1, притом не только старый, но и новый».
«Переписывание истории» — то, за что ругают политиков, а здесь такое переписывание не чего-нибудь, а стандарта. Так теперь и будем говорить, писать и читать — «ПО поддерживает HTTP 1.1, притом не только старый, но и новый».
Потому, что HTTP/1.2 это совсем другая спецификация (он уже существует). По сути, они просто задокументировали все, что было непонятно/неясно, или что использовали, а в документации не было. Ничего кардинально нового тут нет.
Например, «Referer: about:blank» что-то новое и мне совершенно не нравится.
HTTP 1.1.1. ;-)
Ну, это Вы формально ответили, и, да, 1.2, конечно, существует, я маху дал.
Но давайте не будем цепляться к номеру версии, давайте по сути: изменений и уточнений много. Мне было бы спокойнее иметь в номере версии какое-то указание, говорим ли мы о «старом HTTP 1.1», или о «новом HTTP 1.1». Не говоря, что, задумай разработчики выкатить еще одну редакцию, совсем голову сломаем при выборе «старый», «новый», «совсем новый».
Согласен на «1.1bis», на предложенный ниже «1.1.1», даже на «1.1 R2», но все равно какая отметка о «ревизии» должна быть, я так понимаю.
Вот сейчас пойдет волна обновлений веб-серверов, и в каждой новости будем читать в разделе «изменения» — «появилась поддержка новой версии протокола HTTP/1.1 и изменений, к старому HTTP/1.1 добавленных».
Но давайте не будем цепляться к номеру версии, давайте по сути: изменений и уточнений много. Мне было бы спокойнее иметь в номере версии какое-то указание, говорим ли мы о «старом HTTP 1.1», или о «новом HTTP 1.1». Не говоря, что, задумай разработчики выкатить еще одну редакцию, совсем голову сломаем при выборе «старый», «новый», «совсем новый».
Согласен на «1.1bis», на предложенный ниже «1.1.1», даже на «1.1 R2», но все равно какая отметка о «ревизии» должна быть, я так понимаю.
Вот сейчас пойдет волна обновлений веб-серверов, и в каждой новости будем читать в разделе «изменения» — «появилась поддержка новой версии протокола HTTP/1.1 и изменений, к старому HTTP/1.1 добавленных».
Среди всего технического, about:blank выглядит очень подозрительно.
Да, еще одна какая то не кошерная проверка чисто для HTTP/1.1.
А что не так?
А зачем оно? Для чего различать тех пользователей, которые блокируют отправку Referer?
Для того чтобы понимать — вбил пользователь адрес в браузер или открыл ссылку из окна без адреса.
Вот это меня и беспокоит. Зачем в протокол закладывать ещё большую автоматическую передачу каких-то данных о пользователе и его действиях?
Что-то я вас не понимаю. Referer предназначен для передачи откуда пользователь перешёл. Такая логика у него. К сожалению, в логике был изъян: если адрес окна about:blank, то браузеры его не передавали в этот заголовок, такое непонятное исключение. Сейчас логику выправили, исключения нет.
У меня аж целых два возражения:
1. Referer не передаётся по ссылкам с локальных страниц (например, я создал документ
2. Referer не показывает, откуда пришёл пользователь, он показывает атрибут
1. Referer не передаётся по ссылкам с локальных страниц (например, я создал документ
C:\123.HTML
со ссылкой на ya.ru
— при переходе по ссылке firefox не передаёт referer). Разве about:blank не локальный ресурс? Получается, при «переходе» с about:blank (взял в кавычки, т.к. перехода по ссылке собственно нет) надо передавать локальный referer, а при переходе с C:\123.HTML
— не надо?2. Referer не показывает, откуда пришёл пользователь, он показывает атрибут
href
последнего кликнутого тега <a>
. Например, переход через <meta http-equiv="refresh" />
, или window.location="..."
. Можно сделать вывод, что referer относится только к переходам по тегу <a href="...">
. В случае пустой страницы анкора нет, referer не нужен.Например, переход через ...отвлёкся на другие окна, чтобы проверить, забыл дописать «не передаёт referer»
Referer не показывает, откуда пришёл пользователь, он показывает атрибут href последнего кликнутого тега <a>
Это не совсем верно. Например, если страница содержит картинку, то запрос к картинке будет содержать Referer-заголовок с адресом всей страницы.Как это перехода с about:blank нет? Открывает about:blank, потом наш js-шаблонизатор туда пишет содержимое, и вот, есть переход.
Это-то понятно. Непонятно, зачем? Кому эта ситуация мешала? Поставлять лишний бит информации в байесовскую сеть кровавой АНБни о том, что кто-то режет Referer`ы?
Если кто-то режет, он начнёт подставлять «about:blank» вместо полного удаления. Расширение RefControl уже сейчас может подставлять custom referer или полностью удалять.
Таким образом, различие коснётся только ссылок с
Как-то это не в духе открытых стандартов: вводить сначала фичу, потом к ней антифичу. Это как гугль/яндекс стали «шифровать» поисковый запрос в referer при переходе по ссылке-результату поиска. Пока им было выгодно, их всё устраивало.
Таким образом, различие коснётся только ссылок с
rel="noreferrer"
. Вот, спрашивается, зачем тогда этот атрибут вводить, чтобы потом искать к нему противодействие.Как-то это не в духе открытых стандартов: вводить сначала фичу, потом к ней антифичу. Это как гугль/яндекс стали «шифровать» поисковый запрос в referer при переходе по ссылке-результату поиска. Пока им было выгодно, их всё устраивало.
а если у меня не about:blank в адресной строке, а habr.ru, а я туда вручную пишу другой адрес?
Что ещё за «окно без адреса»?
Насколько я понимаю, ситуаций когда Referer не передаётся три:
Я предполагаю, что разница между первыми двумя слишком тонкая и техническая (в обоих случаях идёт открытие url не связанной с уже открытыми страницами, а наличие/отсутствие на экране надписи about:blank в строке адреса не несёт никакой реальной смысловой нагрузки), поэтому данное изменение протокола подразумевает что Referer: about:blank будет передаваться в первых двух случаях и не передаваться в третьем.
Насколько я понимаю, ситуаций когда Referer не передаётся три:
- браузер запустили с параметром url (ну или нажали на ссылку в каком-то другом приложении, напр. в IM-клиенте, и это приложение запустило браузер по умолчанию с указанной url или передало ему команду через какое-нить IPC/dbus)
- пользователь открыл новую вкладку/окно и набрал url
- пользователь заблокировал отправку referer (напр. плагином FF RefControl) либо url выкачивается не браузером, а какой-то качалкой вроде wget/curl
Я предполагаю, что разница между первыми двумя слишком тонкая и техническая (в обоих случаях идёт открытие url не связанной с уже открытыми страницами, а наличие/отсутствие на экране надписи about:blank в строке адреса не несёт никакой реальной смысловой нагрузки), поэтому данное изменение протокола подразумевает что Referer: about:blank будет передаваться в первых двух случаях и не передаваться в третьем.
Во времена расцвета сетей dc++ была занятная история, связанная с первым сценарием.
Веб-ресурсы рекламировались в чате dc-хаба. Но при переходе по ссылке из чата неизвестно было, откуда пришёл юзер.
А хотелось бы, чтобы всякая аналитика показывала хаб как источник трафика.
В-общем, держатели хабов и разработчики dc-клиентов в дискуссиях на формумах так ничего и не придумали.
Веб-ресурсы рекламировались в чате dc-хаба. Но при переходе по ссылке из чата неизвестно было, откуда пришёл юзер.
А хотелось бы, чтобы всякая аналитика показывала хаб как источник трафика.
В-общем, держатели хабов и разработчики dc-клиентов в дискуссиях на формумах так ничего и не придумали.
А что, подменять все отправляемые в чат ссылки на hub.example.com/r?ORIGINALURL не было технической возможности?
Что ещё за «окно без адреса»?var h = window.open('about:blank'…);
Код 451 не включили в стандарт? Неужели никто не предложил такую правку?
Код 451 предлагали с 2012 года, tools.ietf.org/html/draft-tbray-http-legally-restricted-status-04 ("An HTTP Status Code to Report Legal Obstacles") — пятая версия предложения (истекает через месяц) от Tim Bray (Google, ранее Sun и создание XML).
http2.0 конечно, вкуснее, но тоже хорошо… только что-то меня волнует, что если нету реферрера — about:blank, вроде ничего, но какие-то подозрения.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Обновился HTTP/1.1