Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (2)
просмотр истории страницыCarbon Reductor выполняет предварительную обработку списков перед тем как загрузить их в ядро. |
|
Это сделано по той причине, что выносить нормализацию URL в runtime перед поиском в базе - очень затратно, поэтому в userspace генерируются некоторые возможные расхождения в поведении разных браузеров/библиотек по работе с URL, а затем все полученные варианты заносятся в ядро. Возможно это немного смутит - например удаление домена 3 уровня www. у части ссылок. Вот часть таких преобразований: * дублирование в случае uppercase в Host. * дублирование для некоторых ресурсов, имеющих несколько доменов. Пока хардкодом. * Отрезание www. для некоторых доменов (в результате блокируются все субдомены). * URL с точкой в конце Host лишаются этой точки, её проверка вынесена в ядро. * Кириллические домены приводятся к IDNA-виду. * Отсекается / в конце большинства URL. * В случае с якорями (#something) URL дублируются с и без них. * Кодировка GET-запроса, даже экранированного проходит с перебором. * Для URL с HTTPS добавляется "дубликат" с доступом по HTTP. * и ещё несколько обработок с достаточно частными случаями. Как редуктор потом ведёт себя с обработанными списками можно прочитать в статье [про обработку HTTP запросов.|reductor5:HTTP] |