Показаны сообщения с ярлыком SSL. Показать все сообщения
Показаны сообщения с ярлыком SSL. Показать все сообщения
воскресенье, 9 апреля 2017 г.
Как сделать один сайт для всех устройств (Responsive Web Design)
Вчера была опубликована хорошая статья «Веб-дизайн. Каждому устройству свое представление». Несмотря на неплохие размышления, к сожалению, вывод в ней довольно глупый. А именно:
«Нужно определить, какими устройствами могут пользоваться ваши посетители, проработать и создать для этих устройств представление вашего сайта, определить устройство посредством проверки заголовков браузеров, и отправить наиболее подходящее представление.»
Во-первых, никто не сможет предугадать, какими устройствами будут пользоваться ваши посетители. Нужно ориентироваться не на устройства, а на разрешения.

Это скриншот из презентации «Beyond the mobile web by yiibu» (очень рекомендую).
Во-вторых, если вы не facebook или yandex, скорее всего, вы не потянете создание и поддержку разных версий сайта для каждого устройства. Да и это не имеет особого смысла. Потому что ситуация становится похожа на реалии пятнадцатилетней давности. Тогда делали сайт «под браузер», а сейчас автор предлагает делать сайт «под устройство».
Вопросы, которые поднимал автор вышеуказанной статьи, уже довольно давно в цивилизованном мире обдуманы, и, более того, они уже решены.
Сейчас можно сделать 1 сайт с единственной версткой, который будет работать на устройствах, начиная с телефонов, заканчивая огромными телевизорами. Например, yiibu.com или alistapart.com(поуменьшайте окно браузера):


Responsive состоит из следующих техник:
Основная идея — формула для вычисления пропорций в процентах «target / context = result». Например, у нас есть макет psd с шириной 1000px. В нем есть два блока: один слева шириной 270px, другой справа 730px. Сверстаем мы их так:
Если внутри левого столбца будет еще один блок и, скажем, на макете он шириной в 170px, то для него поменяются цель и контекст, и код будет выглядеть вот так:
На хабре был перевод оригинальной статьи Ethan Marcotte «Fluid Grids».
Подстраивают свои размеры под блок родителя. Основная идея в неочевидном применении свойства { max-width: 100% }. Изображение с img { max-width: 100% } никогда не вылезет из своего блока-родителя.
Если блок-родитель меньше, чем размеры img, то изображение пропорционально уменьшится. Этот принцип применим как для img, так и для embed, object, video.
Подробная оригинальная статья «Fluid Images».
Нужны для отображения макета, оптимизированного под разрешение, с которого в данный момент этот сайт смотрится. Это часть стандарта CSS, которая позволяет применять стили на основе информации о разрешении устройства.
Например, так:
media queries понимают все разумные браузеры. Для ie же есть Respond.js
Это техника, при которой сайт верстается сначала для устройств с меньшими возможностями, а затем с помощью media queries добавляются возможности и плюшки.
Так глупые браузеры без media queries получат самый простой контент (например, на мобильных телефонах). А более продвинутые поймут и отрисуют страницу, беря во внимание media queries.
Подробнее о Mobile first
«Нужно определить, какими устройствами могут пользоваться ваши посетители, проработать и создать для этих устройств представление вашего сайта, определить устройство посредством проверки заголовков браузеров, и отправить наиболее подходящее представление.»
Почему это глупо
Во-первых, никто не сможет предугадать, какими устройствами будут пользоваться ваши посетители. Нужно ориентироваться не на устройства, а на разрешения.

Это скриншот из презентации «Beyond the mobile web by yiibu» (очень рекомендую).
Во-вторых, если вы не facebook или yandex, скорее всего, вы не потянете создание и поддержку разных версий сайта для каждого устройства. Да и это не имеет особого смысла. Потому что ситуация становится похожа на реалии пятнадцатилетней давности. Тогда делали сайт «под браузер», а сейчас автор предлагает делать сайт «под устройство».
Как сделать один сайт для всех устройств
Вопросы, которые поднимал автор вышеуказанной статьи, уже довольно давно в цивилизованном мире обдуманы, и, более того, они уже решены.
Сейчас можно сделать 1 сайт с единственной версткой, который будет работать на устройствах, начиная с телефонов, заканчивая огромными телевизорами. Например, yiibu.com или alistapart.com(поуменьшайте окно браузера):


Все это называется «Responsive Web Design»
Responsive состоит из следующих техник:
Резиновый макет на основе пропорций (fluid grid)
Основная идея — формула для вычисления пропорций в процентах «target / context = result». Например, у нас есть макет psd с шириной 1000px. В нем есть два блока: один слева шириной 270px, другой справа 730px. Сверстаем мы их так:
.leftcolumn {
width: 27%; /* 270px / 1000px = 0,27 */
float: left;
}
.rightcolumn {
width: 73%; /* 730px / 1000px = 0,73 */
float: right;
}
Если внутри левого столбца будет еще один блок и, скажем, на макете он шириной в 170px, то для него поменяются цель и контекст, и код будет выглядеть вот так:
.leftcolumn .some-div {
width: 62,962963%; /* 170px / 270px = 0.62962963 */
float: left;
}
На хабре был перевод оригинальной статьи Ethan Marcotte «Fluid Grids».
Резиновые изображения (fluid images)
Подстраивают свои размеры под блок родителя. Основная идея в неочевидном применении свойства { max-width: 100% }. Изображение с img { max-width: 100% } никогда не вылезет из своего блока-родителя.
Если блок-родитель меньше, чем размеры img, то изображение пропорционально уменьшится. Этот принцип применим как для img, так и для embed, object, video.
Подробная оригинальная статья «Fluid Images».
Media queries
Нужны для отображения макета, оптимизированного под разрешение, с которого в данный момент этот сайт смотрится. Это часть стандарта CSS, которая позволяет применять стили на основе информации о разрешении устройства.
Например, так:
/* начало css */
Здесь базовые стили для глупых браузеров. Например, для телефонов не high-end уровня. Pocket Internet Explorer для Windows Mobile 6.5 здесь же :).
@media only screen and (min-width: 480px) {
Здесь стили более разумных, но все еще мобильных устройств. Android, iPhone и так далее.
}
@media only screen and (min-width: 768px) {
Планшеты в режиме portrait.
}
@media only screen and (min-width: 992px) {
Планшеты в режиме landscape, нетбуки, ноутбуки, десктоп.
}
@media only screen and (min-width: 1382px) {
Десктоп с большими разрешениями, телевизоры.
}
/* конец css */
media queries понимают все разумные браузеры. Для ie же есть Respond.js
Mobile first
Это техника, при которой сайт верстается сначала для устройств с меньшими возможностями, а затем с помощью media queries добавляются возможности и плюшки.
Так глупые браузеры без media queries получат самый простой контент (например, на мобильных телефонах). А более продвинутые поймут и отрисуют страницу, беря во внимание media queries.
Подробнее о Mobile first
суббота, 7 февраля 2015 г.
Cloudflare включил бесплатный SSL для всех сайтов
Cloudflare включил бесплатный SSL для всех сайтов
Это произошло еще 29 сентября, но новость прошла незамеченной мимо Хабра.
Как написано в блоге компании, «еще вчера в интернете было 2 миллиона сайтов, поддерживающих SSL. Сегодня мы удвоим это число.»

Что предлагается вкратце: бесплатные wildcard-сертификаты, поддержка SPDY, возможность зашифровать трафик также между cloudflare и вашим сервером. Заинтересовавшихся прошу под кат.
Итак, новая опция от Cloudflare называется Universal SSL™. Она предполагает выдачу сертификата, валидного как для корневого домена, так и для всех поддоменов первого уровня. Сертификаты выдаются компаниями GlobalSign и Comodo.
(Напомню, если кто не в курсе, что Cloudflare — это одна из сетей доставки контента (CDN), популярная за счет наличия бесплатного тарифного плана).
На выбор отныне предлагаются 4 схемы работы веб-сайта: без шифрования на всей протяженности запроса и 3 новых варианта:
Первая из них не требует никаких изменений на стороне сервера, трафик при этом передается между прокси-серверами и вашим ресурсом в открытом виде.
Вариант Full SSL допускает использование любого самоподписанного сертификата, что ненамного надежнее первой схемы и защищает трафик только от пассивного прослушивания. Поэтому в качестве рекомендуемого варианта называется третья опция, требующая наличие у сервера валидного сертификата от общепризнанных ЦС.
В дальнейшем предполагается использование собственного Cloudflare CA, позволяющего защитить канал между сервером и прокси (при этом в браузерах сертификаты Cloudflare CA признаваться не будут, схема планируется исключительно для служебных целей). Кроме того, в будущем планируется внедрить поддержку certificate pinning.
При всех перечисленных выше плюсах технология Universal SSL имеет ряд отличий от использования SSL на платных тарифных планах Cloudflare. Это одновременно позволяет компании сохранить свою бизнес-модель и решить ряд ограничений, связанных с массовостью SSL-решений и соответствующим ростом нагрузки на прокси-серверы:
Использование ECDSA создает заметно меньшую нагрузку на сервер, чем применение «традиционных» алгоритмов RSA. Технология SNI, в свою очередь, позволяет разместить на ограниченном количестве IP-адресов Cloudflare более 2 млн сайтов, управляемых сетью. При этом имя хоста передается как часть TLS negotiation (а не после установления закрытого канала, как в традиционной схеме, требующей выделенный IP или порт), что позволяет прокси-серверу сразу выбирать нужный сертификат и устанавливать соединение с требуемым ресурсом.
К сожалению, эти технологии не поддерживаются рядом старых операционных систем и браузеров. Среди них наиболее сильны позиции у IE/WinXP (включая более ранние ОС), а также Android до версии Ice Cream Sandwich. При необходимости поддерживать максимально большое количество устройств/операционок, предлагается использовать платные тарифы, включающие в себя более полные cipher suite's (что логично, за дополнительную нагрузку на сервера необходимо платить).
Полный список поддерживаемых клиентов для Universal SSL выглядит следующим образом:
При этом любая версия Internet Explorer на Windows XP не поддерживает SNI.
Read more: cloudflare blog, origin security
Несмотря на перечисленные выше недостатки, технология выглядит достаточно интересно (учитывая стоимость). Многим сайтам, еще не использовавшим HTTPS, предоставилась возможность исправить это «упущение» :) А что думаете вы?
UPD: В браузере пользователя сертификаты сервера выглядят следующим образом:
Как написано в блоге компании, «еще вчера в интернете было 2 миллиона сайтов, поддерживающих SSL. Сегодня мы удвоим это число.»
Что предлагается вкратце: бесплатные wildcard-сертификаты, поддержка SPDY, возможность зашифровать трафик также между cloudflare и вашим сервером. Заинтересовавшихся прошу под кат.
Итак, новая опция от Cloudflare называется Universal SSL™. Она предполагает выдачу сертификата, валидного как для корневого домена, так и для всех поддоменов первого уровня. Сертификаты выдаются компаниями GlobalSign и Comodo.
(Напомню, если кто не в курсе, что Cloudflare — это одна из сетей доставки контента (CDN), популярная за счет наличия бесплатного тарифного плана).
На выбор отныне предлагаются 4 схемы работы веб-сайта: без шифрования на всей протяженности запроса и 3 новых варианта:
Первая из них не требует никаких изменений на стороне сервера, трафик при этом передается между прокси-серверами и вашим ресурсом в открытом виде.
Вариант Full SSL допускает использование любого самоподписанного сертификата, что ненамного надежнее первой схемы и защищает трафик только от пассивного прослушивания. Поэтому в качестве рекомендуемого варианта называется третья опция, требующая наличие у сервера валидного сертификата от общепризнанных ЦС.
В дальнейшем предполагается использование собственного Cloudflare CA, позволяющего защитить канал между сервером и прокси (при этом в браузерах сертификаты Cloudflare CA признаваться не будут, схема планируется исключительно для служебных целей). Кроме того, в будущем планируется внедрить поддержку certificate pinning.
При всех перечисленных выше плюсах технология Universal SSL имеет ряд отличий от использования SSL на платных тарифных планах Cloudflare. Это одновременно позволяет компании сохранить свою бизнес-модель и решить ряд ограничений, связанных с массовостью SSL-решений и соответствующим ростом нагрузки на прокси-серверы:
- Поддерживается только ECDSA cipher suite
- используется SNI (Server Name Indication)
Использование ECDSA создает заметно меньшую нагрузку на сервер, чем применение «традиционных» алгоритмов RSA. Технология SNI, в свою очередь, позволяет разместить на ограниченном количестве IP-адресов Cloudflare более 2 млн сайтов, управляемых сетью. При этом имя хоста передается как часть TLS negotiation (а не после установления закрытого канала, как в традиционной схеме, требующей выделенный IP или порт), что позволяет прокси-серверу сразу выбирать нужный сертификат и устанавливать соединение с требуемым ресурсом.
К сожалению, эти технологии не поддерживаются рядом старых операционных систем и браузеров. Среди них наиболее сильны позиции у IE/WinXP (включая более ранние ОС), а также Android до версии Ice Cream Sandwich. При необходимости поддерживать максимально большое количество устройств/операционок, предлагается использовать платные тарифы, включающие в себя более полные cipher suite's (что логично, за дополнительную нагрузку на сервера необходимо платить).
Полный список поддерживаемых клиентов для Universal SSL выглядит следующим образом:
Desktop Browsers
- Internet Explorer 7 and later
- Firefox 2
- Opera 8 with TLS 1.1 enabled
- Google Chrome:
- Windows XP: Chrome 6 и последующие
- Vista и далее — полная поддержка
- OS X начиная с 10.5.7: Chrome 5.0.342.0 и последующие
- Safari 2.1 и последующие (начиная с OS X 10.5.6 или Windows Vista).
При этом любая версия Internet Explorer на Windows XP не поддерживает SNI.
Mobile Browsers
- Mobile Safari for iOS 4.0+
- Android 3.0 (Honeycomb)+
- Windows Phone 7+
Read more: cloudflare blog, origin security
Несмотря на перечисленные выше недостатки, технология выглядит достаточно интересно (учитывая стоимость). Многим сайтам, еще не использовавшим HTTPS, предоставилась возможность исправить это «упущение» :) А что думаете вы?
UPD: В браузере пользователя сертификаты сервера выглядят следующим образом:
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
- ssl сертификаты
- , ssl
- , cloudflare
- , https
Похожие публикации
Бесплатные SSL-сертификаты на 2 года с поддержкой до 100 доменов 2 февраля в 18:35
SSL-сертификаты: всем, каждому, и пусть никто не уйдёт обиженным 24 ноября 2014 в 15:13
Сотни неработающих сайтов, или о том, как code.jquery.com забыли продлить SSL-сертификат 1 августа 2014 в 09:57
Бесплатные SSL-сертификаты для проектов Open Source 8 июня 2014 в 16:07
Авторизация с помощью клиентских SSL сертификатов в IOS и Android 22 апреля 2014 в 21:58
Авторизация клиентов в nginx посредством SSL сертификатов 24 февраля 2014 в 22:49
Как защитить абсолютно всё при помощи одного лишь SSL-сертификата 4 декабря 2013 в 21:12
Новые доменные зоны ослабят защиту SSL-сертификатов 23 мая 2013 в 10:43
Облака, ответственность и неожиданные ситуации с SSL-сертификатами 16 мая 2013 в 10:58
Только 3% SSL-сертификатов правильно сконфигурированы 29 июня 2010 в 16:45












Комментарии (44)