Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 634757)
Контекстум
.

HTTP/2 в действии (6000,00 руб.)

0   0
Первый авторПоллард Барри
ИздательствоМ.: ДМК Пресс
Страниц426
ID809604
АннотацияПосле изучения этой книги читатели приобретут четкое представление о том, что представляют собой протокол HTTP/2 и связанные с ним технологии. В части I обсуждается предыстория появления протокола и объясняется, в чем состоят его преимущества перед HTTP/1.1. Рассматриваются способы переноса веб-сайта на HTTP/2; приводятся инструкции по установке таких популярных веб-сервисов, как Apache, nginx, IIS. Часть II описывает сам протокол и порядок установки HTTP/2-соединения, рассказывает об основном формате фреймов HTTP/2; отдельная глава посвящена push-серверу HTTP/2, который является новой частью протокола. Часть III содержит информацию о глубинных компонентах протокола, на которые не могут повлиять ни веб-разработчики, ни администраторы веб-серверов, и освещает различия между реализациями развертывания протокола HTTP/2. Наконец, в части IV обозначены перспективы развития протокола HTTP и способы его дальнейшего улучшения.
Кому рекомендованоАдресовано веб-разработчикам, администраторам веб-сайтов и тем, кто интересуется интернет-технологиями, в частности оптимизацией веб-производительности. В книге приведены ссылки, которые пригодятся читателям для дальнейшего изучения темы.
ISBN978-5-97060-925-5
УДК004.432
ББК32.972.1
Поллард, Б. . HTTP/2 в действии / Б. . Поллард .— Москва : ДМК Пресс, 2021 .— 426 с. : ил. — ISBN 978-5-97060-925-5 .— URL: https://rucont.ru/efd/809604 (дата обращения: 25.04.2024)

Предпросмотр (выдержки из произведения)

HTTP2_в_действии.pdf
Стр.5
Стр.8
Стр.9
Стр.10
Стр.11
Стр.12
Стр.13
HTTP2_в_действии.pdf
УДК 004.432 ББК 32.972.1 П26 П26 HTTP/2 в действии / пер. с анг. П. М. Бомбаковой. – М.: ДМК Пресс, 2021. – 424 с.: ил. Поллард Б. ISBN 978-5-97060-925-5 После изучения этой книги читатели приобретут четкое представление о том, что представляют собой протокол HTTP/2 и связанные с ним технологии. В части I обсуждается предыстория появления протокола и объясняется, в чем состоят его преимущества перед HTTP/1.1. Рассматриваются способы переноса веб-сайта на HTTP/2; приводятся инструкции по установке таких популярных вебсервисов, как Apache, nginx, IIS. Часть II описывает сам протокол и порядок установки HTTP/2-соединения, рассказывает об основном формате фреймов HTTP/2; отдельная глава посвящена push-серверу HTTP/2, который является новой частью протокола. Часть III содержит информацию о глубинных компонентах протокола, на которые не могут повлиять ни веб-разработчики, ни администраторы веб-серверов, и освещает различия между реализациями развертывания протокола HTTP/2. Наконец, в части IV обозначены перспективы развития протокола HTTP и способы его дальнейшего улучшения. Издание адресовано веб-разработчикам, администраторам веб-сайтов и тем, кто интересуется интернет-технологиями, в частности оптимизацией веб-произ во дительности. В книге приведены ссылки, которые пригодятся читателям для дальнейшего изучения темы. УДК 004.432 ББК 32.972.1 Original English language edition published by Manning Publications USA, USA. Russian-language edition copyright © 2021 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-6172-9516-4 (анг.) ISBN 978-5-97060-925-5 (рус.) © Manning Publications, 2019 © Оформление, издание, перевод, ДМК Пресс, 2021
Стр.5
Содержание Оглавление ..................................................................................................6 Предисловие .............................................................................................13 Благодарности ..........................................................................................15 Об этой книге ...........................................................................................18 Об авторе ...................................................................................................22 Об иллюстрации на обложке .................................................................23 Часть I ПЕРЕХОД НА HTTP/2 ......................................................24 Веб-технологии и HTTP ...............................................................25 1 1.1 О том, как работает сеть ..............................................................26 1.1.1 Internet и Всемирная паутина ...............................................26 1.1.2 Что происходит, когда вы просматриваете веб-страницы? ......................................................................27 1.2 Что такое HTTP?.............................................................................32 1.3 Синтаксическая структура HTTP и история его создания ...39 1.3.1 HTTP/0.9 .................................................................................39 1.3.2 HTTP/1.0 .................................................................................40 1.3.3 HTTP/1.1 .................................................................................47 1.4 Введение в HTTPS .........................................................................52 1.5 Инструменты для просмотра, отправки и получения HTTP-сообщений ...........................................................................56 1.5.1 Использование инструментов разработчика в веб-браузерах .......................................................................57 1.5.2 Отправка HTTP-запросов .....................................................58 1.5.3 Другие инструменты для просмотра и отправки HTTP-запросов .......................................................................59 Резюме .......................................................................................................60
Стр.8
8 Содержание 2 Путь к HTTP/2 ...................................................................................61 2.1 HTTP/1.1 и современная Всемирная паутина .........................62 2.1.1 Основные проблемы с производительностью HTTP/1.1........65 2.1.2 Конвейеризация HTTP/1.1 ......................................................67 2.1.3 Использование каскадных диаграмм для анализа производительности .............................................................68 2.2 Пути решения проблем с производительностью ...................70 2.2.1 Создание параллельных HTTP-соединений ............................71 2.2.2 Сокращение количества запросов .........................................74 2.2.3 Вывод ......................................................................................76 2.3 Другие проблемы HTTP/1.1 .........................................................76 2.4 Практические примеры ...............................................................77 2.4.1 Пример 1: amazon.com ...........................................................77 2.4.2 Пример 2: imgur.com...............................................................82 2.4.3 Насколько проблема серьезна? ...............................................83 2.5 Переход от HTTP/1.1 к HTTP/2 ....................................................84 2.5.1 SPDY .......................................................................................85 2.5.2 HTTP/2 ....................................................................................87 2.6 Значение HTTP/2 для веб-производительности ........................88 2.6.1 Пример предельной производительности HTTP/2 ................88 2.6.2 Какой прирост производительности может обеспечить HTTP/2? ..................................................................................91 2.6.3 Обходные пути для HTTP/1.1 как потенциальные тупики ...96 3 Резюме .......................................................................................................96 Переход на HTTP/2 ...........................................................................97 3.1 Поддержка HTTP ...........................................................................97 3.1.1 Поддержка HTTP/2 cо стороны веб-браузера .......................98 3.1.2 Поддержка HTTP/2 серверами .............................................104 3.1.3 Откат к предыдущим версиям, в случае если поддержка HTTP/2 невозможна .............................................................106 3.2 Способы перехода вашего сайта на HTTP/2 ..........................107 3.2.1 HTTP/2 на вашем веб-сервере ..............................................107 3.2.2 HTTP/2 с обратным прокси-сервером .................................110 3.2.3 HTTP/2 и CDN .......................................................................113 3.2.4 Вывод по реализации HTTP/2 ...............................................115 3.3 Устранение неполадок при настройке HTTP/2 .....................115 Резюме .....................................................................................................119 Часть II ИСПОЛЬЗОВАНИЕ HTTP/2 ......................................120 Основы протокола HTTP/2 ......................................................121 4 4.1 Почему HTTP/2, а не HTTP/1.2? ................................................121 4.1.1 Двоичный, а не текстовый ..................................................123
Стр.9
Содержание 9 4.1.2 Мультиплексирование вместо синхронности ....................124 4.1.3 Приоритет потоков и управление ими...............................128 4.1.4 Сжатие заголовков ..............................................................129 4.1.5 Server push ............................................................................130 4.2 Как устанавливается HTTP/2-соединение .............................130 4.2.1 Использование HTTPS-рукопожатия ..................................131 4.2.2 HTTP-заголовок Upgrade........................................................138 4.2.3 Применение заранее известного протокола .......................141 4.2.4 Протокол HTTP Alternative Services .....................................142 4.2.5 Преамбула соединения HTTP/2 ............................................143 4.3 Фреймы HTTP/2 ...........................................................................144 4.3.1 Просмотр фреймов HTTP/2 .................................................144 4.3.2 Формат фреймов HTTP/2 ....................................................151 4.3.3 Исследование потока сообщений HTTP/2 на примерах .......153 4.3.4 Дополнительные фреймы ....................................................168 5 Резюме .....................................................................................................172 Реализация HTTP/2 push ............................................................173 5.1 Что такое HTTP/2 server push? ..................................................173 5.2 Как отправлять push-сообщения .............................................177 5.2.1 Отправка push-сообщений с помощью HTTP-заголовка ссылки ...................................................................................177 5.2.2 Просмотр ресурсов, отправленных с помощью HTTP/2 push ..........................................................................180 5.2.3 Загрузка ресурсов посредством push из нисходящих систем с помощью заголовков ссылок .................................183 5.2.4 Предварительная push-загрузка ресурсов ...........................186 5.2.5 Другие способы push-загрузки ..............................................193 5.3 Как работает HTTP/2 push в браузере .....................................195 5.3.1 Как работает кеш push .......................................................196 5.3.2 Отказ от push с помощью RST_STREAM .............................199 5.4 Условная push-загрузка .............................................................200 5.4.1 Отслеживание push на стороне сервера .............................200 5.4.2 Условные HTTP-запросы ......................................................201 5.4.3 Push-загрузка с помощью куки-файлов ...............................201 5.4.4 Дайджесты кеша ..................................................................202 5.5 К каким ресурсам применим HTTP/2 push............................204 5.5.1 К чему может быть применим push? ..................................204 5.5.2 К чему должен быть применим push? ..................................205 5.5.3 Автоматизация push-загрузки ..........................................206 5.6 Решение проблем HTTP/2 push ................................................207 5.7 Влияние HTTP/2 push на производительность .....................209 5.8 Push или предварительная загрузка? .....................................211 5.9 Другие варианты использования HTTP/2 push ....................214 Резюме .....................................................................................................217
Стр.10
10 Содержание 6 Оптимизация в HTTP/2 .............................................................218 6.1 Значение HTTP/2 для веб-разработчиков .............................219 6.2 Оптимизация HTTP/1.1 мешает HTTP/2? ..............................220 6.2.1 Запросы HTTP/2 по-прежнему затратны ...........................220 6.2.2 Возможности HTTP/2 не безграничны ................................224 6.2.3 Для больших ресурсов эффективнее сжатие .......................225 6.2.4 Ограничение пропускной способности и конкуренция ресурсов ................................................................................227 6.3 Методы повышения веб-производительности все еще 6.2.5 Сегментирование данных ....................................................229 6.2.6 Встраивание ресурсов ..........................................................230 6.2.7 Заключение ...........................................................................230 актуальны для HTTP/2 ................................................................231 6.3.1 Уменьшение объема передаваемых данных ..........................232 6.3.2 Предотвращение повторной отправки данных с помощью кеширования ......................................................239 6.3.3 Снижение нагрузки на сеть посредством сервис-воркеров ....................................................................244 6.3.4 Не отправляйте то, что вам не нужно ..............................245 6.3.5 Подсказки для ресурсов HTTP ..............................................245 6.3.6 Сокращение задержки «последней мили» .............................248 6.3.7 Оптимизация HTTPS ...........................................................248 6.3.8 Методы повышения веб-производительности, не связанные с HTTP .............................................................252 6.4 Оптимизация и для HTTP/1.1, и для HTTP/2 .........................252 6.4.1 Измерение трафика HTTP/2 ................................................252 6.4.2 Отслеживание поддержки HTTP/2 на стороне сервера ......254 6.4.3 Отслеживание поддержки HTTP/2 на стороне клиента ....257 6.4.4 Объединение соединений ......................................................258 6.4.5 Сколько времени занимает оптимизация для пользователей HTTP/1.1 ................................................260 Резюме .....................................................................................................261 Часть III ПРОДВИНУТЫЙ УРОВЕНЬ ИСПОЛЬЗОВАНИЯ HTTP/2 ......................................262 7 Расширенные возможности HTTP/2 ..................................263 7.1 Состояния HTTP/2-потока .........................................................264 7.2 Управление потоками информации .......................................268 7.2.1 Пример управления потоками информации .......................269 7.2.2 Настройка управления потоком информации на сервере .............................................................................272 7.3 Приоритеты потоков ..................................................................273 7.3.1 Зависимости потоков .........................................................274
Стр.11
Содержание 11 7.3.2 Взвешивание потока ............................................................277 7.3.3 Почему приоритизация – это так сложно? ........................280 7.3.4 Приоритизация в веб-серверах и браузерах ........................280 7.4 Проверка совместимости с HTTP/2 .........................................285 7.4.1 Проверка совместимости сервера ......................................285 7.4.2 Проверка совместимости клиента .....................................287 8 Резюме .....................................................................................................287 Cжатие заголовков HPACK ......................................................289 8.1 Для чего нужно сжатие заголовков? .......................................289 8.2 Как работает сжатие ...................................................................291 8.2.1 Таблицы подстановки ..........................................................292 8.2.2 Более эффективные методы кодировки ..............................293 8.2.3 Ретроспективное сжатие ...................................................295 8.3 Сжатие HTTP-тел .........................................................................295 8.4 Сжатие заголовка HPACK для HTTP/2 .....................................297 8.4.1 Статическая таблица HPACK.............................................298 8.4.2 Динамическая таблица HPACK ............................................299 8.4.3 Типы заголовков HPACK .......................................................300 8.4.4 Таблица кодировки Хаффмана .............................................305 8.4.5 Скрипт кодирования по Хаффману .....................................306 8.4.6 Почему кодирование Хафманна подходит не во всех случаях ..................................................................................308 8.5 Практические примеры сжатия HPACK..................................309 8.6 HPACK в реализациях клиента и сервера ..............................315 8.7 Ценность HPACK ..........................................................................316 Резюме .....................................................................................................317 Часть IV БУДУЩЕЕ HTTP ..................................................................318 TCP, QUIC и HTTP/3 ......................................................................319 9 9.1 HTTP и слабые стороны TCP .....................................................320 9.1.1 Задержка предустановки HTTP/2 ........................................321 9.1.2 Неэффективность системы контроля перегрузки в TCP ...323 9.1.3 Влияние слабых мест TCP на HTTP/2 ..................................331 9.1.4 Оптимизация TCP ................................................................336 9.1.5 Будущее TCP и HTTP .............................................................341 9.2 QUIC ................................................................................................342 9.2.1 Преимущества QUIC в производительности ......................344 9.2.2 Место QUIC в стеке Internet ................................................344 9.2.3 Что такое UDP и почему он является основой QUIC ..........345 9.2.4 Стандартизация QUIC ........................................................349 9.2.5 Различия между HTTP/2 и QUIC ...........................................351 9.2.6 Инструменты QUIC .............................................................354
Стр.12
12 Содержание 9.2.7 Реализации QUIC ..................................................................355 9.2.8 Стоит ли переходить на QUIC? ..........................................356 10 Резюме .....................................................................................................356 Дальнейшее развитие HTTP ....................................................358 10.1 Споры о HTTP/2 и его недостатках .........................................359 10.1.1 Споры о SPDY .......................................................................359 10.1.2 Проблемы конфиденциальности и состояния в HTTP ........361 10.1.3 HTTP и шифрование .............................................................366 10.1.4 Проблемы транспортного протокола ................................370 10.1.5 HTTP/2 слишком сложен ......................................................374 10.1.6 HTTP/2 – временная мера ....................................................375 10.2 HTTP/2 в реальном мире ...........................................................376 10.3 Будущие версии HTTP/2 и возможности HTTP/3 или HTTP/4 ....................................................................................378 10.3.1 QUIC – это HTTP/3? .............................................................378 10.3.2 Дальнейшее развитие двоичного протокола HTTP .............378 10.3.3 Развитие HTTP над транспортным уровнем .....................379 10.3.4 Какие расширения требуют создания новой версии HTTP? ...................................................................................382 10.3.5 Как могут быть представлены будущие версии HTTP ........383 10.4 HTTP как базовый транспортный уровень ............................383 10.4.1 Использование семантики и сообщений HTTP для доставки внутреннего трафика ...................................383 10.4.2 Использование концепции двоичного фрейминга HTTP/2....385 10.4.3 Использование HTTP для запуска другого протокола .........385 Резюме .....................................................................................................390 Приложение. Обновление популярных веб-серверов до HTTP/2 ......................................................................................................391 A.1 Обновление вашего веб-сервера для поддержки HTTP/2 ............................................................................................391 A.1.1 Apache ...................................................................................392 A.1.2 nginx ......................................................................................407 A.1.3 Microsoft Internet Information Services (IIS) ...........................416 A.1.4 Другие серверы .....................................................................417 A.2 Настройка HTTP/2 через обратный прокси-сервер .............418 A.2.1 Apache ...................................................................................418 A.2.2 nginx ......................................................................................419 Предметный указатель .......................................................................420
Стр.13

Облако ключевых слов *


* - вычисляется автоматически
.