Я тут все як завжди в запарі - робота потім після 21:00 лекціі і так далі)
Я часто чую від своїх учнів шо вони даже не знаю яка версія у них нттп чи на кліенті чи на рівні nginx - і для мене чучуть дивно бо цеж розуміня як працює - скільки запросів і як вони обробляються і тощо
Ну короче чучуть поговоримо про протоколи?
Протоколи для QA - QUIC
QUIC - це не “ще один протокол для браузера”.
Це транспортний протокол, який працює поверх UDP і використовується в HTTP/3. Тобто якщо сайт або апка працює через HTTP/3 - під капотом там вже може бути не TCP, а QUIC.
Його ви можете зустрічатии там, де браузери, мобільні апки, CDN, стрімінг, відео, великі вебсервіси і все, де важлива швидкість та стабільна робота на поганій мережі. І тут КУА дуже часто навіть не знає, що вже тестує QUIC)
тобто тут ми повині розуміти пару прости штук які дійстно годні)
швидше піднімає connection, має TLS 1.3 всередині, краще працює при packet loss, не блокує всі потоки через один загублений пакет, може пережити зміну Wi-Fi на LTE і вміє робити fallback на HTTP/2, якщо UDP недоступний
Тобто: ви бачите звичайний HTTPS, але реально клієнт може працювати через HTTP/3 і UDP.
Типові симптоми QUIC-проблем: це теж не шось зверх це у браузері працює, а через VPN - ні або через proxy не відкривається і UDP блокує firewall чи Charles або Fiddler не бачить трафік як ви очікуєте або клієнт тихо зробив fallback на HTTP/2 і ви навіть цього не помітили
І це не завжди баг API. Це може бути транспорт.
Шо ви як куа можете і повинні перевірити в тому чи іншому випадку) можно подевитись, який HTTP version реально використовується:
curl -I --http3 https://example.com
Перевірити fallback на HTTP/2:
curl -I --http2 https://example.com
Подивитись UDP-трафік:
sudo tcpdump -i any udp port 443
Перевірити, чи не блокується UDP:
nc -uvz host 443
Бо без розуміння КУА бачить: “HTTPS працює дивно”, “через VPN не конектиться”, “після зміни мережі все впало” і валить баг на бекенд або клієнт.
А з розумінням - ви вже можете сказати: QUIC не піднявся,
чи типо дивись тут UDP блокується, або клієнт зробив fallback на HTTP/2, бо інакше частина мережевих багів так і залишиться магією)
Всім гарного вечора і насторю)
Обняв 🤗