Обработка списков

Skip to end of metadata
Go to start of metadata

Carbon Reductor выполняет предварительную обработку списков перед тем как загрузить их в ядро.

Это сделано по той причине, что выносить нормализацию URL в runtime перед поиском в базе - очень затратно, поэтому в userspace генерируются некоторые возможные расхождения в поведении разных браузеров/библиотек по работе с URL, а затем все полученные варианты заносятся в ядро.

Возможно это немного смутит - например удаление домена 3 уровня www. у части ссылок.

Вот часть таких преобразований:

  • дублирование в случае uppercase в Host.
  • дублирование для некоторых ресурсов, имеющих несколько доменов. Пока хардкодом.
  • Отрезание www. для некоторых доменов (в результате блокируются все субдомены).
  • URL с точкой в конце Host лишаются этой точки, её проверка вынесена в ядро.
  • Кириллические домены приводятся к IDNA-виду.
  • Отсекается / в конце большинства URL.
  • В случае с якорями (#something) URL дублируются с и без них.
  • Кодировка GET-запроса, даже экранированного проходит с перебором.
  • Для URL с HTTPS добавляется "дубликат" с доступом по HTTP.
  • и ещё несколько обработок с достаточно частными случаями.

Как редуктор потом ведёт себя с обработанными списками можно прочитать в статье про обработку HTTP запросов.

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.