Open fly-appa-fly opened 6 years ago
Колись у браузерів було обмеження на кількість паралельних запитів до одного домену, здається число було рівне 5. З'єднання теж були досить повільними. Тож це було для забезпеченя гарантії доставки хоч чогось.
Та з часом з'єднання стали значно швидшими. А омеження залишилося. Треба було щось з цим робити.
І люди придумли хак: зберігати стилі, зображення, скрипти на різних доменах. Таким чином одночасно можна було відкрити не 5, а 10, 15 з'єднань; підвантажити усе значно швидше.
Тут проблеми вже створювали не проблеми з максимальною кількістю, а сама кількість. Створення з'єднання потребувало багато часу, іноді так само, як на пересилку.
Люди придумали ще один хак: об'єднувати стилі та скрипти в один файл й пересилати все пакетом, робити спрайти з зображень й таким чином теж мінімізувати кількість запитів.
Даних стало значно більше. Специфіка стала іншою. Постійно є потреба оновлювати дані через API.
Підхід зі спрайтами та мінімізацією створює ряд проблем з підтримкою, швидкістю й зручністю розробки.
HTTP/2 дає нам можливіть менше перейматися цими аспектами, видалити костилі й не втратити продуктивність. Тобто, якщо в HTTP/1 ми могли нормально переслати 6 картинок, то з HTTP/2 ми можемо за такий же час переслати 60 за рахунок.
Насправді, згідно зі специфікацією, HTTP/2 не підтримує незашифровані з'єднання. Але це неточно. Різні розробники можуть по різному трактувати специфікацію. В зв'язку з цим в декого є підтримка незашифрованих з'єднань, а в декого ні.
HTTP/2 має чітко сформовану специфікацію фреймів, подібно до TCP та інших протоколів.
Протокол може бути реалізований без попередніх версій, та в більшості випадків вимазає зворотної сумісності з HTTP/1.1 й реалізацію цієї версії теж.
Навести нові можливості протоколу HTTP/2 чи важливі відмінності від HTTP/1.1 (крім вже згаданих на слайді 35).
Бажано не лише наводити якісь списки можливостей, а й наводити пояснення – чим саме кожна можливість може бути корисною розробникам чи користувачам веб-застосунків.