HTTP/2 в действии

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

После изучения этой книги читатели приобретут четкое представление о том, что представляют собой протокол HTTP/2 и связанные с ним технологии. В части I обсуждается предыстория появления протокола и объясняется, в чем состоят его преимущества перед HTTP/1.1. Рассматриваются способы переноса веб-сайта на HTTP/2; приводятся инструкции по установке таких популярных вебсервисов, как Apache, nginx, IIS. Часть II описывает сам протокол и порядок установки HTTP/2-соединения, рассказывает об основном формате фреймов HTTP/2; отдельная глава посвящена push-серверу HTTP/2, который является новой частью протокола. Часть III содержит информацию о глубинных компонентах протокола, на которые не могут повлиять ни веб-разработчики, ни администраторы веб-серверов, и освещает различия между реализациями развертывания протокола HTTP/2. Наконец, в части IV обозначены перспективы развития протокола HTTP и способы его дальнейшего улучшения. Издание адресовано веб-разработчикам, администраторам веб-сайтов и тем, кто интересуется интернет-технологиями, в частности оптимизацией веб-производительности. В книге приведены ссылки, которые пригодятся читателям для дальнейшего изучения темы.

Author(s): Барри Поллард
Edition: 1
Publisher: ДМК Пресс
Year: 2021

Language: Russian
Commentary: Vector PDF
Pages: 424
City: М.
Tags: Web Applications; HTTP; TCP/IP

Http2 в действии_переплет
Http в действии.pdf
Оглавление
Предисловие
Благодарности
Об этой книге
Об авторе
Об иллюстрации на обложке
Часть I. ПЕРЕХОД НА HTTP/2
Глава 1. Веб-технологии и HTTP
1.1. О том, как работает сеть
1.1.1. Internet и Всемирная паутина
1.1.2. Что происходит, когда вы просматриваете веб-страницы?
1.2. Что такое HTTP?
1.3. Синтаксическая структура HTTP и история его создания
1.3.1. HTTP/0.9
1.3.2. HTTP/1.0
1.3.3. HTTP/1.1
1.4. Введение в HTTPS
1.5. Инструменты для просмотра, отправки и получения HTTP-сообщений
1.5.1. Использование инструментов разработчика в веб-браузерах
1.5.2. Отправка HTTP-запросов
1.5.3. Другие инструменты для просмотра и отправки HTTP-запросов
Резюме
Глава 2. Путь к HTTP/2
2.1. HTTP/1.1 и современная Всемирная паутина
2.1.1. Основные проблемы с производительностью HTTP/1.1
2.1.2. Конвейеризация HTTP/1.1
2.1.3. Использование каскадных диаграмм для анализа производительности
2.2. Пути решения проблем с производительностью
2.2.1. Создание параллельных HTTP-соединений
2.2.2. Сокращение количества запросов
2.2.3. Вывод
2.3. Другие проблемы HTTP/1.1
2.4. Практические примеры
2.4.1. Пример 1: amazon.com
2.4.2. Пример 2: imgur.com
2.4.3. Насколько проблема серьезна?
2.5. Переход от HTTP/1.1 к HTTP/2
2.5.1. SPDY
2.5.2. HTTP/2
2.6. Значение HTTP/2 для веб-производительности
2.6.1. Пример предельной производительности HTTP/2
2.6.2. Какой прирост производительности может обеспечить HTTP/2?
2.6.3. Обходные пути для HTTP/1.1 как потенциальные тупики
Резюме
Глава 3. Переход на HTTP/2
3.1. Поддержка HTTP
3.1.1. Поддержка HTTP/2 cо стороны веб-браузера
3.1.2. Поддержка HTTP/2 серверами
3.1.3. Откат к предыдущим версиям, в случае если поддержка HTTP/2 невозможна
3.2. Способы перехода вашего сайта на HTTP/2
3.2.1. HTTP/2 на вашем веб-сервере
3.2.2. HTTP/2 с обратным прокси-сервером
3.2.3. HTTP/2 и CDN
3.2.4. Вывод по реализации HTTP/2
3.3. Устранение неполадок при настройке HTTP/2
Резюме
Часть II. ИСПОЛЬЗОВАНИЕ HTTP/2
Глава 4. Основы протокола HTTP/2
4.1. Почему HTTP/2, а не HTTP/1.2?
4.1.1. Двоичный, а не текстовый
4.1.2. Мультиплексирование вместо синхронности
4.1.3. Приоритет потоков и управление ими
4.1.4. Сжатие заголовков
4.1.5. Server push
4.2. Как устанавливается HTTP/2-соединение
4.2.1. Использование HTTPS-рукопожатия
4.2.2. HTTP-заголовок Upgrade
4.2.3. Применение заранее известного протокола
4.2.4. Протокол HTTP Alternative Services
4.2.5. Преамбула соединения HTTP/2
4.3. Фреймы HTTP/2
4.3.1. Просмотр фреймов HTTP/2
4.3.2. Формат фреймов HTTP/2
4.3.3. Исследование потока сообщений HTTP/2 на примерах
4.3.4. Дополнительные фреймы
Резюме
Глава 5. Реализация HTTP/2 push
5.1. Что такое HTTP/2 server push?
5.2. Как отправлять push-сообщения
5.2.1. Отправка push-сообщений с помощью HTTP-заголовка ссылки
5.2.2. Просмотр ресурсов, отправленных с помощью HTTP/2 push
5.2.3. Загрузка ресурсов посредством push из нисходящих систем с помощью заголовков ссылок
5.2.4. Предварительная push-загрузка ресурсов
5.2.5. Другие способы push-загрузки
5.3. Как работает HTTP/2 push в браузере
5.3.1. Как работает кеш push
5.3.2. Отказ от push с помощью RST_STREAM
5.4. Условная push-загрузка
5.4.1. Отслеживание push на стороне сервера
5.4.2. Условные HTTP-запросы
5.4.3. Push-загрузка с помощью куки-файлов
5.4.4. Дайджесты кеша
5.5. К каким ресурсам применим HTTP/2 push
5.5.1. К чему может быть применим push?
5.5.2. К чему должен быть применим push?
5.5.3. Автоматизация push-загрузки
5.6. Решение проблем HTTP/2 push
5.7. Влияние HTTP/2 push на производительность
5.8. Push или предварительная загрузка?
5.9. Другие варианты использования HTTP/2 push
Резюме
Глава 6. Оптимизация в HTTP/2
6.1. Значение HTTP/2 для веб-разработчиков
6.2. Оптимизация HTTP/1.1 мешает HTTP/2?
6.2.1. Запросы HTTP/2 по-прежнему затратны
6.2.3. Возможности HTTP/2 не безграничны
6.2.3. Для больших ресурсов эффективнее сжатие
6.2.4. Ограничение пропускной способности и конкуренция ресурсов
6.2.5. Сегментирование данных
6.2.6. Встраивание ресурсов
6.2.7. Заключение
6.3. Методы повышения веб-производительности все еще актуальны для HTTP/2
6.3.1. Уменьшение объема передаваемых данных
6.3.2. Предотвращение повторной отправки данных с помощью кеширования
6.3.3. Снижение нагрузки на сеть посредством сервис-воркеров
6.3.4. Не отправляйте то, что вам не нужно
6.3.5. Подсказки для ресурсов HTTP
6.3.6. Сокращение задержки «последней мили»
6.3.7. Оптимизация HTTPS
6.3.8. Методы повышения веб-производительности, не связанные с HTTP
6.4. Оптимизация и для HTTP/1.1, и для HTTP/2
6.4.1. Измерение трафика HTTP/2
6.4.2. Отслеживание поддержки HTTP/2 на стороне сервера
6.4.3. Отслеживание поддержки HTTP/2 на стороне клиента
6.4.4. Объединение соединений
6.4.5. Сколько времени занимает оптимизация для пользователей HTTP/1.1
Резюме
Часть III. ПРОДВИНУТЫЙ УРОВЕНЬ ПОЛЬЗОВАНИЯ HTTP/2
Глава 7. Расширенные возможности HTTP/2
7.1. Состояния HTTP/2-потока
7.2. Управление потоками информации
7.2.1. Пример управления потоками информации
7.2.2. Настройка управления потоком информации на сервере
7.3. Приоритеты потоков
7.3.1. Зависимости потоков
7.3.2. Взвешивание потока
7.3.3. Почему приоритизация – это так сложно?
7.3.4. Приоритизация в веб-серверах и браузерах
7.4. Проверка совместимости с HTTP/2
7.4.1. Проверка совместимости сервера
7.4.2. Проверка совместимости клиента
Резюме
Глава 8. Cжатие заголовков HPACK
8.1. Для чего нужно сжатие заголовков?
8.2. Как работает сжатие
8.2.1. Таблицы подстановки
8.2.2. Более эффективные методы кодировки
8.2.3. Ретроспективное сжатие
8.3. Сжатие HTTP-тел
8.4. Сжатие заголовка HPACK для HTTP/2
8.4.1. Статическая таблица HPACK
8.4.2. Динамическая таблица HPACK
8.4.3. Типы заголовков HPACK
8.4.4. Таблица кодировки Хаффмана
8.4.5. Скрипт кодирования по Хаффману
8.4.6. Почему кодирование Хафманна подходит не во всех случаях
8.5. Практические примеры сжатия HPACK
8.6. HPACK в реализациях клиента и сервера
8.7. Ценность HPACK
Резюме
Часть IV. БУДУЩЕЕ HTTP
Глава 9. TCP, QUIC и HTTP/3
9.1. HTTP и слабые стороны TCP
9.1.1. Задержка предустановки HTTP/2
9.1.2. Неэффективность системы контроля перегрузки в TCP
9.1.3. Влияние слабых мест TCP на HTTP/2
9.1.4. Оптимизация TCP
9.1.5. Будущее TCP и HTTP
9.2. QUIC
9.2.1. Преимущества QUIC в производительности
9.2.2. Место QUIC в стеке Internet
9.2.3. Что такое UDP и почему он является основой QUIC
9.2.4. Стандартизация QUIC
9.2.5. Различия между HTTP/2 и QUIC
9.2.6. Инструменты QUIC
9.2.7. Реализации QUIC
9.2.8. Стоит ли переходить на QUIC?
Резюме
Глава 10. Дальнейшее развитие HTTP
10.1. Споры о HTTP/2 и его недостатках
10.1.1. Споры о SPDY
10.1.2. Проблемы конфиденциальности и состояния в HTTP
10.1.3. HTTP и шифрование
10.1.4. Проблемы транспортного протокола
10.1.5. HTTP/2 слишком сложен
10.1.6. HTTP/2 – временная мера
10.2. HTTP/2 в реальном мире
10.3. Будущие версии HTTP/2 и возможности HTTP/3 или HTTP/4
10.3.1. QUIC – это HTTP/3?
10.3.2. Дальнейшее развитие двоичного протокола HTTP
10.3.3. Развитие HTTP над транспортным уровнем
10.3.4. Какие расширения требуют создания новой версии HTTP?
10.3.5. Как могут быть представлены будущие версии HTTP
10.4. HTTP как базовый транспортный уровень
10.4.1. Использование семантики и сообщений HTTP для доставки внутреннего трафика
10.4.2. Использование концепции двоичного фрейминга HTTP/2
10.4.3. Использование HTTP для запуска другого протокола
Резюме
Приложение. Обновление популярных веб-серверов до HTTP/2
A.1. Обновление вашего веб-сервера для поддержки HTTP/2
A.1.1. Apache
A.1.2. nginx
A.1.3. Microsoft Internet Information Services (IIS)
A.1.4. Другие серверы
A.2. Настройка HTTP/2 через обратный прокси-сервер
A.2.1. Apache
A.2.2. nginx
Предметный указатель