HTTP/2
3 марта 2015
17 февраля 2015 вторая версия HTTP стала кандидатом на стандарт и уже поддерживается в Chrome (--enable-spdy4
), Firefox, IE 11.
Изменения, по сравнению с 1.1, значительные и серьёзно повлияют на веб-разработку в целом.
HTTP/2 основан на SPDY. То есть используется одно TCP соединение для передачи в обе стороны нескольких запросов-ответов. Передаваемое при этом, включая заголовки, представляется в сжатом бинарном виде. В дополнение сервер может заранее отсылать не связанные с открытой страницей ресурсы в кэш браузера.
То есть такие техники как спрайты, сжатие и сборка CSS/JS в один файл, отдельный домен без cookie для ресурсов, несколько доменов для ресурсов, становятся не нужны и даже вредны. Правильно будет отдавать ресурсы мелкими порциями только когда они реально нужны. То есть чтобы для каждой отдельно взятой страницы количество загружаемых ресурсов было минимальным.
Комментарии RSS по email OK
CTAPbIu_MABP, ?
Строго говоря, сжатие CSS- и JS-ресурсов и сейчас-то не особо нужно, почти все веб-серверы и клиенты умеют передавать сжатый gzip-ом контент.
Основная польза минификации, по сути, состоит только в склеивании всех файлов в один, да в некотором сокрытии JS-кода от анализа.
Т.е. браузер будет держать comet соединение с сервером ?
Будет, но не comet.
nginx.com/blog/how-nginx-plans-to-support-http2/
We’re pleased to announce that we plan to release versions of nginx and NGINX Plus by the end of 2015 that will include support for HTTP/2.
Уже скоро. К тому времени доля браузеров с поддержкой Http2 будет сильнов выше 50%
Новые браузеры будут поддерживать http/2, но серверам все так же придется поддерживать старые версии протокола для староверов / чайников со старым IE. Беспокоит возрастающая нагрузка на сервер.
С чего она возрастёт?
@Дмитрий, ну сложно представить мгновенный переход с А на Б. Насчет нагрузки на сервер - вряд ли некоммерческие проекты (я имею в виду в основном личные и информационные сайты) заметят даже 20% прирост, коммерческие проекты давно знают формулу "тормозит - докупи сервер".
@Sam, очевидно имелось в виду это предложение:
Etki, исправил. Конечно же, браузера, а не сервера.
Нужная информация.
мнимый выигрыш только на времени создания нового сединения сервером, т.к. используется мультиплексирование (проще говоря, передача данных по одному каналу). Это суть SPDY от гугл. При SSL/TLS выигрыш на отсутствии дополнительных рукопожатий, хотя тоже не факт.
Постоянное соединение есть и в http/1.1 , просто там лимит устанавливается браузером 5-8 соединений. Как правило, этого достаточно чтобы подгрузить все файлы паралельно. Что касается мультиплексирования - то возрастает нагрузка та сервер из-за вичисления приоритета данных (хотя возможно компенсируется сокращением соединений).
сжатие и остальное бла-бла. разница от http/1.1 только в сжатии заголовков HTTP протокола (кот. является просто текстом). В HTTP /1.1 сжатия нет. В SPDY используется DEFLATE (1951 год), а в 2й версии перешли на HPACK (кот. еще не проверен толком).
А ну да, еще одна крутая вещь, это форсированое сжатие текста gzip.
единственный реальный выигрыш для сервера, и в том, что 1 клиент использует только 1 порт, тем самым повышая кол-во клиентов, которые могут подключиться к серверу в 5-8 раз.