О вреде CDN, сервисов и шрифтов от Google

Как известно, сегодня все больше и больше разработчиков предпочитают грузить js-библиотеки из CDN Google (например, jQuery). Более того, это даже считается хорошим тоном — в более чем 50% случаев тот же jQuery находится в кэше браузера пользователя благодаря посещению других сайтов, использующих тот же CDN. И все бы хорошо — к вашему серверу меньше обращений, у пользователя сайт грузится быстрее… Видимых недостатков нет.

А что если вы работаете на глобальном рынке? Использованием googleapis вы сразу отсекаете огромную часть пользователей из Китая!

Большой китайский фаервол блокирует не только поисковик от Google, но и все его сервисы, в числе которых и CDN. Таким образом, в Китае Ваш сайт становится либо недоступен (если Вы подключаете jQuery до body), либо работает не совсем так, как вы ожидаете (если jQuery подключается в конце кода). То же самое касается шрифтов от Google, графиков от Google, reCaptcha от Google и всего остального «от Google».

Вывод: Если Вам интересны пользователи из Китая — следует пересмотреть свое мнение на предмет загрузки библиотек или шрифтов с гугловских CDN.

P.S. Даже если Ваш сайт не ориентирован на китайскую аудиторию — подумайте о тех ваших пользователях, которые могут оказаться в Китае проездом или в командировке.

Простейший пример — попытка регистрации на habrahabr.ru из Китая:

image

Сервис выдает ошибку: Необходимо разгадать капчу

А капчи нет. Потому что reCaptcha — «от Гугл».
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 31

    0
    хм. наверное както можно решить проблему. хотя очень неудобно. да и с рекапчу у себя не продублируешь
      0
      Мы у себя решили вопрос в лоб — по geoip определяли, откуда идет запрос, и если Китай/Макао/Гонконг, то вместо рекапчи показывали другую капчу.
      +9
      > О вреде CDN, сервисов и шрифтов от Google

      Мне одному кажется, что вредны на самом деле не CDN и Google?..
        +9
        Вреден подход, при котором ты не можешь ничего сделать, потому что считается по умолчанию, что CDN доступен всегда и везде, и никаких экспепшенов на обратную ситуацию не предусмотрено by design
          0
          во во. было б логично иметь возможность давать списки урлов зеркал для ресурсов.
            –1
            А если в Китае окажется заблокированным весь сайт, потому как провайдер не понравился (или не в Китае)? Вреден подход, при котором удобное средство внезапно оказывается заблокированным от желания левой пятки, свой сервер со статикой тоже не гарантия — разместишь не там и так же не получится (это если не попадёт за компанию с основным).
            kalininmr — доблестный РКН обяжет провайдеров «блокировать ресурс, все его IP при изменении их и все зеркала изх официального списка».
              0
              так наименее приоритетным зеркалом свой хост.
          +1
          Хм, а к чему приведён скриншот ID.TMTM, если там сейчас рекапча не используется?
            0
            Но ведь если бы была — то на хабру не смогли бы регаться китайцы!
            +3
            Хм, мне кажется пользователь который едет в Китай должен знать что там не работает большая часть интернета. И явно виноваты в этом не те кто использует CDN/шрифты/капчу гугла
              0
              Ничего, что Китай это больше миллиарда пользователей Интернета?
              К тому же, запрещать и не пускать может произойти где и когда угодно. От Северной Кореи и до Кубы, включая остановки в Китае, в России, Индии (да-да, еще 1 млрд!), в Казахстане, в Иране, Йемене, и т.п. и т.д.
                0
                И что с того? Предлагаете тратить деньги на содержание своего хостинга в той стране где блокируют CDN? А что если завтра и ваш хостинг будет неугоден и его тоже заблокируют?
                  +5
                  Нет. Я предлагаю сделать асинхронную, неблокирующую загрузку с CDN — раз, и если загрузка не произошла в таймаут, то загружать ресурсы с сервера, с которого раздается и сам сайт, исходя из предположения, что если сайт открывается, то и jQuery с этого же веб-сервера тоже подгрузится.
                  А если сайт не открывается целиком, то и проблемы с jQuery / капчей нет. Нет сайта — нет капчи — нет проблемы. А в обратном случае непонятно, сайт вроде есть, а он не работает. Почему — непонятно (капча, jQuery, другие библиотеки, соцкнопочки, GA/YM/другие счетчики по списку).
                      +1
                      А вот это интересный и достойный реализации подход. И не про Китай, а про надёжность — и облака, бывают, падают (пусть и на время), DDOS на хостинг, переконфигурация. Вот капчу отключать нельзя, иначе есть крутой лайфхак (или нужно что-то придумывать, переходить на альтернативную, но ставить на контроль пользующихся таким — альтернативная явно хуже, была бы лучше — использовалась бы она, для контроля нужен администратор — затраты, принесут ли китайцы тот профит? они, может, заказать ничего не смогут, как и пара уехавших туда, да и рекламу вырежут или она не попадёт из-за блокировок гугла, затраты есть, но спущены в /dev/null).
                        0
                        Идея здравая, но есть нюанс: в случае серьёзного отказа CDN вся нагрузка по раздаче файлов ляжет на сервер сайта и канал, через который этот сервер подключен. Соответственно в случае сколь-нибудь критичных требований по аптайму вместе с высокой посещаемостью есть смысл позаботиться о хотя бы холодном резервировании раздачи, чтобы соответствующие мощности можно было быстро ввести в строй, даже если сервер под высокой нагрузкой на него и на канал будет едва откликаться на консоль.
                      –1
                      На самом деле около 540 тысяч.
                      Хотя, конечно, тоже цифра внушительная.
                    +7
                    Вреден не CDN и не Гугл, а государственное регулирование интернетов
                      +1

                      Идея понятна, но в заголовок стоило бы добавить слово "Китай", а то я уж было подумал, что сейчас прочитаю что-то интересное. Не уподобляйтесь журналистам, которые увидев прогноз погоды спешат написать, что ураганы рвут Родину на части.

                        +1

                        Знаете, вспоминая события начала мая, лучше не дописывать только "Китай", когда в одной стране из-за ковровых блокировок сервисы гугла и прочего CDN не всегда успешно работали.

                          0
                          Тогда так: «О вреде CDN, сторонних сервисов, распределенных систем и, возможно, шрифтов». В общем, над заголовком необходимо работать.
                        +2
                        в более чем 50% случаев тот же jQuery находится в кэше браузера пользователя
                        уже есть статистика в открытом доступе, подтверждающая данное утверждение?
                          +2
                          С этого года не обязательно быть китайцем, чтобы понять, что завязки на гугло посторонние сервисы — зло. Достаточно жить в одной стране с потерявшими берега от вседозволенности жуликами. Довольно долгое время гуглапис не грузился вообще, а фонтс тормозит, кажется, до сих пор.
                            0
                            Для этого есть fallback-и. В итоге все в выиграше.
                              +1
                              Давно уже не пользуюсь гугло-поиском, но сегодня меня не устроили результаты Яндекса, решил на гугле посмотреть — при переходе с Яндекса на Гугл (с яндекса есть ссылки на другие поисковики — да, это тоталитарный поисковик, не то, что свободный гугл, не предлагающий альтернатив :))
                              Два раза я разгадывал капчу — страница перезагружалась и снова здравствуй капча! Я понимаю. что это связано с крестовым походом РКН на телегу, но мне важен результат — не работает гугло-поиск, да и х*р с ним!

                              P.S. Интересно, что другие гугловские сервисы — доки и ютуб — не требуют капчи
                              P.P.S. Нынешнее местоположение — Петрозаводск
                                –1

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

                                  0
                                  > Этот тоталитарный поисковик уже предпринимал попытки сначала запрятать,
                                  Не знаю, как оно было и было ли…
                                  Факт в том, что за 4 года, что я пользуюсь Яндексом ссылки на другие поисковики были и есть — никуда они не исчезают, а в гугле их сроду не было.
                                  0
                                  не то, что свободный гугл, не предлагающий альтернатив

                                  Это связано с серым адресом, никогда дома и на прошлых местах работы капчи не было (белые адреса с понятным списком использующих), а здесь есть. БЦ с единым выходом и кучей народа с непонятно какими запросами. Результат — капча.


                                  Свободному гуглу же просто нет дела до альтернативных поисковиков, зачем ему Яндекс? Это локальный поисковик одной из стран, тогда в качестве альтернативных нужно добавлять все национальные. В Яндексе никакой англоязычный поиск (а учитывая тенденции к цензуре и русскоязычный стоит перепроверять альтернативными поисковиками) — потому переходы.

                                    0
                                    Если с вашего IP хулиганили — будет капча. А ещё там раньше любили давать капчу на IPv6…
                                    0
                                    Вы меня, извините, конечно, но статья какая-то провокационная.
                                    Посыл из заголовка: «CDN и сервисы гугла вредны».
                                    Доказательство: «Их могут заблокировать».
                                    Одному мне логическая цепочка «штука X вредна, потому что ее могут поломать» кажется несколько странной? Мне кажется, тут классический пример путаницы между причиной и следствием.
                                      0
                                      Да ссылки на библиотеки на гугле и кучке других источников — бессмыслены, поскольку кеш на клиентах уже давно меньше, чем объем всех библиотечек, которые, по идее, он должен хранить и второй раз не качать. Качает, только в путь!
                                      Причем имеем «грабли наоборот»: если js-файл качается с того же сервера, что и сам сайт, то сетевой стек клиента уже знает, как с ним соединиться, а если js летит с Гугла, то имеем фазу ресолвинга, установления соединения и прочего.
                                      Не говоря, что РКН активно приучает не пользоваться множеством серверов в интернете: тебя не блочат, так ты все со своего сервера и отдавай!

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое