Почему Midori в Fedora Linux претендует на звание Safari в Mac OS X?

Если вы используете Google Chrome в Linux, заголовок запроса User-Agent будет выглядеть так:

Mozilla / 5.0 (X11; Linux i686) AppleWebKit / 537.1 (KHTML, как Gecko) Chrome/21.0.1180.89 Safari/537.1

Сверху мы узнаем, что браузер - это Chrome, а ОС - это Linux (наверное!). Но когда я захожу из браузера Midori, используя ту же ОС, что и Linux (Fedora), я вижу это:

Mozilla / 5.0 (Macintosh; U; Intel Mac OS X; ru-ru) AppleWebKit/535+ (KHTML, как Gecko) Версия /5.0 Safari/535.4+ Midori/0.4

Почему это говорит Macintosh?

1 ответ

Решение

Midori идентифицируется как OS X Safari, если установлено значение Автоматически. Выберите Midori, чтобы переопределить его.

От midori/midori-websettings.h:

typedef enum
{
    MIDORI_IDENT_MIDORI /* Automatic */,
    MIDORI_IDENT_GENUINE /* Midori */,
    MIDORI_IDENT_SAFARI,
    // etc.
} MidoriIdentity;

midori/midori-websettings.c:

switch (identify_as)
{
case MIDORI_IDENT_GENUINE:
    return g_strdup_printf ("Mozilla/5.0 (%s %s) AppleWebKit/%d.%d+ %s",
        platform, os, webcore_major, webcore_minor, appname);
case MIDORI_IDENT_MIDORI:
case MIDORI_IDENT_SAFARI:
    g_object_set (web_settings, "enable-site-specific-quirks", TRUE, NULL);
    return g_strdup_printf ("Mozilla/5.0 (Macintosh; U; Intel Mac OS X; %s) "
        "AppleWebKit/%d+ (KHTML, like Gecko) Version/5.0 Safari/%d.%d+ %s",
        lang, webcore_major, webcore_major, webcore_minor, appname);
// etc.

Хотя я не знаю причину, по которой разработчики предпочли притворяться Safari, этот пост в блоге об истории строки пользовательского агента, появившийся два года назад, заполнен более ранними примерами настройки строк пользовательского агента для обнаружения хитрых функций на веб-сайтах., Всего один пример:

И последователи Linux были очень опечалены, потому что они создали Konqueror, чей движок был KHTML, который, по их мнению, был так же хорош, как Gecko, но это был не Gecko, и поэтому ему не дали хороших страниц, и поэтому Konquerer начал притворяться быть "как Gecko", чтобы получить хорошие страницы, и называл себя Mozilla/5.0 (совместимый; Konqueror/3.2; FreeBSD) (KHTML, как Gecko), и было много путаницы.

Веб-разработчики часто приспосабливают веб-сайты к определенным браузерам, реализуя запасные варианты для браузеров с меньшим количеством функций. Midori слишком неизвестен и имеет слишком малую долю рынка, чтобы веб-разработчики оптимизировали его специально для этого.

В качестве обходного пути ваш браузер притворяется Safari, поскольку он основан на WebKit и ведет себя одинаково. В противном случае он, вероятно, получит базовый текстовый дизайн на некоторых сайтах вместо современного HTML5-интерфейса, на который он способен.

Поскольку Safari для Linux отсутствует, а изменение строк пользовательских агентов по умолчанию сопряжено с риском того, что они не будут признаны подходящим браузером, у них был выбор между Windows и Mac OS X.

В поддержку этого предположения, из Midori FAQ (data/faq.html при загрузке)

Почему Google Mail/ Календарь / Карты, Facebook не работают или показывают мобильную версию?

Некоторые сайты дискриминируют ваш браузер.

Если у вас Midori старше 0.3.5, выберите "Настройки"> "Сеть"> "Определить как" и выберите "Пользовательский". Вставьте это в запись:

Mozilla/5.0 (X11; Linux) AppleWebKit / 531.2 + Midori / 0.3

Если это не помогает, попробуйте выбрать Safari или Firefox.

Многие другие сайты используют аналогичные средства обнаружения браузера.

Другие вопросы по тегам