- PVSM.RU - https://www.pvsm.ru -

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

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

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

По-моему мнению, в этой дезинформации виновата Википедия и вот почему: откройте английскую версию статьи о Маккартни (ссылка [1]) и вы увидите, что его возраст — 70; откройте русскую версию статьи (ссылка [2]) и вы увидите, что возраст — 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. теперь можно посмотреть историю правок обеих статей и, действительно, английская версия была отредактирована накануне дня рождения, а русская — в день рождения Маккартни.

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

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

Выводы:

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

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

P.S.
Я не знаю, имеются ли в Википедии другие вычисляемые поля, которые могут быть затронуты проблемой. Также, я не знаю, имеется ли у Википедии баг-трекер, и стоит ли вообще исправлять проблему.

Автор: KingOfNothing

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/testirovanie/36850

Ссылки в тексте:

[1] ссылка: http://en.wikipedia.org/wiki/Paul_McCartney

[2] ссылка: http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D0%BA%D0%BA%D0%B0%D1%80%D1%82%D0%BD%D0%B8,_%D0%9F%D0%BE%D0%BB

[3] ссылка: http://en.wikipedia.org/wiki/Paul_McCartney?

[4] Источник: http://habrahabr.ru/post/183802/