К обсуждениям

Safari Technology Preview 251 распознаёт preload as без учёта регистра

Редакция VOne Технологии

Safari Technology Preview 251 распознаёт preload as без учёта регистра. Безопасная локальная диагностика: сетевая матрица «as token → preload request → later reuse → duplicate count», одна переменная, отрицательный контроль, rollback и минимизированный пакет для поддержки.

Симптом, который нельзя смешивать с соседним

Запрос «как проверить ASCII case-insensitive keywords в link preload as Safari Technology Preview 251» сводится к одной проверяемой боли: ресурс с as=ScRiPt или другим смешанным регистром не использует preload так же, как lowercase keyword. До опыта фиксируется ожидаемый признак: mixed-case ведёт себя как lowercase по предварительной загрузке и повторному использованию, а invalid остаётся отдельным классом. Нельзя расширять вывод на stable Safari, другой движок, произвольный сайт или массовость симптома. Главная ловушка здесь такова: сам факт одного request не доказывает preload: важны его timing, initiator и отсутствие второго запроса при использовании. Поэтому наблюдение получает статус reproduced только после повторного одинакового результата и успешного возврата; not reproduced относится исключительно к этому стенду, а unsupported, environment-blocked и unknown остаются разными статусами.

Доказательная опора без вывода о массовости

Официальные Release Notes WebKit от 26 августа 2026 года формулируют изменение так: WebKit сообщает, что keywords атрибута <link rel=preload as> теперь сопоставляются ASCII case-insensitively. Пункт связан с первичной записью 318584@main. Release page доказывает наличие изменения в ветке Safari Technology Preview 251, а commit задаёт техническую границу конкретной правки. Ни один из этих источников сам по себе не подтверждает частоту запроса, результат на конкретном устройстве или будущий перенос в стабильный выпуск. Публичная ветка о релизе использована только как свежий community lead; комментарии, реакции и поисковые snippets не превращаются в доказательство причины.

Наблюдаемые величины и чистый fixture

Стенд: локальная страница и три маленьких ресурса с уникальными безопасными URL: lowercase as, mixed-case as и заведомо invalid token. До воздействия запишите: link markup, server request time/count, PerformanceResourceTiming initiatorType, use time и cache-disabled состояние профиля. Рабочий артефакт — сетевая матрица «as token → preload request → later reuse → duplicate count». У каждого ряда должны быть версия TP 251, время, expected, observed и отметка о валидности контроля. Не сохраняются IP, cookie, токены, Authorization, полные URL с приватными query, локальные пути, имена профилей и содержимое рабочих документов. Случайные или вымышленные данные стенда помечаются как тестовые. Если обязательное поле нельзя получить без доступа к реальным данным, эксперимент останавливается: пробел не заполняют догадкой и не компенсируют дополнительной мутацией.

Пошаговый тест с полным rollback

Canary меняет ровно одну причину: загружать каждый вариант в отдельном чистом navigation, затем реально использовать ресурс и сравнивать request sequence. Контроль устроен отдельно: lowercase keyword — положительный контроль, invalid token — отрицательный; разные URL исключают взаимное влияние cache. Сначала снимается baseline, затем выполняется единственное воздействие, после него — заранее выбранное измерение, затем полный rollback и повтор baseline. Новый шаг не добавляют, пока предыдущий не получил результат и контроль. Если rollback не вернул исходное состояние, прогон invalid, даже когда картинка кажется убедительной. Тест выполняется только локально или на специально подготовленном безопасном стенде; production, пользовательские сессии и чужие страницы в процедуру не входят.

Как читать результат и когда прекратить

PASS для узкой гипотезы означает: mixed-case ведёт себя как lowercase по предварительной загрузке и повторному использованию, а invalid остаётся отдельным классом. Практический результат оформляется как сетевая матрица «as token → preload request → later reuse → duplicate count». Stop-line: при общем URL, service worker, memory cache или HTTP cache без очистки сравнение недействительно; новый прогон начинает чистую сессию. Для передачи разработчику достаточно: HTML, три безопасных URL, server timing allowlist, performance entries, cache state и первичный 318584@main. Перед отправкой артефакт ещё раз очищают от идентификаторов и проверяют, что отрицательный контроль действительно отличался только указанной переменной. Материал не обещает исправление на другом сайте, стабильную поддержку функции, индексацию, позиции или универсальное поведение; он даёт воспроизводимый путь, по которому команда может отделить наблюдаемый факт от предположения.

Материал подготовлен редакцией VOne с помощью ИИ; дата, первичный WebKit commit 318584@main, техническая граница, контроль, обратимость, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.