Протокол SPDY, разрабатываемый компанией Google, может стать заменой устаревшему HTTP и рывком для мобильных устройств в скорости обмена данными и, в частности, получения веб-контента. Что же скрывается под данным сочетанием букв SPDY?
Для начала немного теории, о чём речь, зачем нужно и когда появится
Протокол SPDY предназначен для преодоления недостатков HTTP, старенький HTTP был впервые запущен в 1995 году и разработан для передачи веб-контента, который был в те года намного проще, чем то, что доступно сейчас для использования (в современном мире невозможно найти сайт без загрузки как основы - HTML, так и добавочных файлов - CSS, изображений, JavaScript, SVG и т.д.). Оба протокола (TCP и HTTP) с годами превратились в узкое место для загрузки данных. В HTTP также используется несжатые и избыточные заголовки при запросах клиента и ответах сервера, это только часть проблем устаревшего HTTP, которые хоть и решились частично с помощью сжатия GZIP.
Прошлое: TCP и HTTP
Получение веб-страницы через HTTP-протокол
Всем известно, что обычная веб-страница состоит HTML-кода и дополнительных частей (CSS, JavaScript, изображения), которые к тому же могут находиться на различных серверах. В каждом случае запрос браузера начинается с соединения с нужными серверами, каждое соединение требует времени, при этом в самом начале соединений используется алгоритм TCP SlowStart, он служит для проверки возможности передачи больших объёмов данных, сделано это для предотвращения возможных перегрузок в сети. После соединения с нужным сервером начинается передача нужных данных. Даже при использовании параллельных соединений (которых может быть на одну страницу в среднем до 30, на некоторых сайтах число соединений может составлять 70-90, а для мобильных браузеров из-за аппаратных ограничений устройств число соединений может оказаться в районе 10) загрузка страниц может желать лучшего, количество открытых соединений возрастает с каждой дополнительной загружаемой страницей...
Настоящее: SPDY, Google Chrome и Firefox
Именно для решения подобных проблем был разработан SPDY, на сегодняшний день протокол может существенно сократить время загрузки страниц, при этом передавать все данные абсолютно безопасно, а главное - уменьшать нагрузку на сеть, 30-70 http-соединений можно сократить до 7-8 при использовании протокола SPDY.
Поддержка SPDY уже присутствует в браузере Google Chrome и используется для передачи данных на некоторых сервисах Google. О поддержке протокола SPDY также заявила компания Mozilla, протокол может появиться в браузере Firefox уже в начале 2012 года, что в общих числах позволит около 50 % пользователей получить новую скорость и безопасность передачи данных.
Получение веб-страниц через SPDY
Как видно из схемы если сервер поддерживает протокол SPDY, то будет инициировано соединение именно через данный протокол, таким образом запросы к plus.google.com будут поступать через 1 зашифрованное соединение SPDY на домен и 7-8 соединений по протоколу SPDY на веб-страницу, остальные серверы не поддерживают протокол и поэтому будет использоваться обычный HTTP, количество соединений в этом случае может составлять в среднем примерно 30 на каждую страницу.
Будущее SPDY и мобильный рынок
Большой недостаток настоящего для протокола SPDY в том, что для каждого отдельного сайта требуется индивидуальное переключение на использование протокола. Можно ли избежать этой проблемы? Оказывается можно если мобильные операторы и провайдеры будут включать специальные SPDY-шлюзы.
Почему именно мобильные устройства так нуждаются в SPDY? Именно мобильные устройства очень ограничены в аппаратных возможностях и передача 30 http-соединений для них неосуществима, не говоря уже о времени соединений с серверами.
Получение веб-страниц через SPDY-шлюз
Благодаря широким возможностям протокола, таким как мультиплексирование, мобильные браузеры будут способны буквально в одном соединении по протоколу SPDY отправлять все требуемые запросы на получение файлов, а это отстутствие необходимости в поиске по DNS-имени сервера, долгом соединении по TCP и других проблемах HTTP.
Благодаря использованию SPDY число соединений может упасть с 70-80 до 1! Как уже было сказано раньше - это позволит опустить затраты на поиск нужного IP-адреса сервера и соединение по TCP. Передача данных в мобильном секторе может значительно увеличиться. Некоторые пользователи могли заметить, что в конечном итоге после SPDY-шлюза данные могут поступать к конечным серверам по обычному HTTP-протоколу, это действительно так, серверы, которые не поддерживают SPDY, будут обслуживаться в обычном режиме, единственное, что стоит учитывать - именно расстояние от провайдера\оператора до местонахождения пользователя, часто называемое "последняя миля", является наиболее долгим по времени выполнения, передача данных между серверами в Интернете происходит очень быстро, именно решение проблемы "последней мили" позволит увеличить скорость загрузки веб-страниц.
По мнению разработчиков SPDY подобная технология может использоваться в браузере планшета Kindle Fire для ускорения загрузки веб-сайтов. В более далёком будущем ожидается ускорение работы SSL-соединений, которые всё ещё требуют нескольких циклов ответных отправок данных для установления соединений.