Как стать автором
Обновить

День рождения Пола Маккартни и баг с кешированием в Википедии

Время на прочтение2 мин
Количество просмотров31K
Как вы, возможно, знаете — вчера (18.06.2013) был день рождения Пола Маккартни (год рождения — 1942). Я — не большой фанат, так что об этом мне сообщили соц. сети — Вконтакте и Фейсбук. Странным было только то, что в Вконтакте писали, что ему исполнился 71 год, в то время как на Фейсбуке — что 70. Решил сверить эти данные с Википедией, и вот что обнаружилось.

Под катом — суть проблемы (ничего критического, но довольно занимательно, на мой взгляд).


По-моему мнению, в этой дезинформации виновата Википедия и вот почему: откройте английскую версию статьи о Маккартни (ссылка) и вы увидите, что его возраст — 70; откройте русскую версию статьи (ссылка) и вы увидите, что возраст — 71 год (на всякий случай, в конце заметки приведу скриншоты подтверждающие это).

Дело в следующем:
  1. если посмотреть в заголовки ответа на HTTP запрос к английской версии статьи, то можно увидеть, что заголовок Last-Modified содержит значение Mon, 17 Jun 2013 22:03:16 GMT. А еще остальные заголовки указывают, на то, что содержимое страницы было закешировано;
  2. если посмотреть в заголовки ответа на HTTP запрос к русской версии статьи, то можно увидеть, что Last-Modified равно Tue, 18 Jun 2013 18:29:03 GMT;
  3. теперь можно посмотреть историю правок обеих статей и, действительно, английская версия была отредактирована накануне дня рождения, а русская — в день рождения Маккартни.


Однако значение возраста должно было поменяться и в английской версии. Попробуем получить свежую версию страницы добавив к запросу "?" (ссылка). Это действительно помогло — теперь отображается правильный возраст (но не на оригинальной странице без "?").

Резюме проблемы: Википедия не отслеживает дату и время изменения страницы, когда изменения происходят в автоматически вычисляемых полях.

Выводы:

  • Я проверил еще несколько статей, содержащих автоматическое вычисление возраста, и в некоторых из них проблема повторяется. Значит, возрасту из Википедии нельзя безоговорочно доверять :-)
  • Следует учитывать весь динамический контент на странице при разработке системы кеширования. Как мне кажется, вычисляемые поля на страницы Википедии были добавлены позже, после того, как была создана система кеширования. И эта система не была пересмотрена после добавления вычисляемых полей.
  • Проблема — не очень серьезная, так как может быть исправлена со временем путем обновления статьи кем-либо из участников Википедии. Сложно найти статьи, которые редактировались очень давно и содержали бы вычисляемые поля.


Скриншоты:
Русская версия image
Английская версия image
Английская с "?" в конце URL image

P.S.
Я не знаю, имеются ли в Википедии другие вычисляемые поля, которые могут быть затронуты проблемой. Также, я не знаю, имеется ли у Википедии баг-трекер, и стоит ли вообще исправлять проблему.
Теги:
Хабы:
Всего голосов 87: ↑74 и ↓13+61
Комментарии39

Публикации

Истории

Работа

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
24 сентября
Astra DevConf 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн