Фраза "ваш сайт тормозит" является эквивалентом бага "ваше приложение не работает". Современный интернет уже давно сложнее этих слов и для того чтобы формализовать эту короткую фразу нам потребуется немного посмотреть на то, как работает веб. Начнем с магических пони, приносящих веб-странички, и закончим простыми метриками и разбором HTTP архивов. Ничего сложного не будет - просто ряд ответов, которые крайне редко можно услышать на собеседованиях.
40. Клиент Сервер
TCP SYN („надо поговорить“)
TCP SYN ACK(„ОК, согласен“)
TCP ACK(„ОК, мы говорим“)
41. Клиент Сервер
TCP SYN („надо поговорить“)
TCP SYN ACK(„ОК, согласен“)
TCP ACK(„ОК, мы говорим“)
SSL(„нас могут подслушивать“)
SSL(„держи ключик“)
42. Клиент Сервер
TCP SYN („надо поговорить“)
TCP SYN ACK(„ОК, согласен“)
TCP ACK(„ОК, мы говорим“)
SSL(„нас могут подслушивать“)
SSL(„держи ключик“)
HTTP GET / („дай мне свою домашнюю страничку“)
HTTP 200 („Да, конечно!“) немного
index.html („Вот она“) задумался
Неистово рендерит пиу-пиу-пиу [img js css] („и это тоже держи“)
43. Клиент Сервер
TCP SYN („надо поговорить“)
TCP SYN ACK(„ОК, согласен“)
TCP ACK(„ОК, мы говорим“)
SSL(„нас могут подслушивать“)
SSL(„держи ключик“)
HTTP GET / („дай мне свою домашнюю страничку“)
HTTP 200 („Да, конечно!“) немного
index.html („Вот она“) задумался
Неистово рендерит пиу-пиу-пиу [img js css] („и это тоже держи“)
TCP FIN („спасибо, пока!“)
TCP FIN ACK („незачто! Приходите еще!“)
44. Index.html
Script.js
Style.css
Button.gif
Photo.jpg
Background.gif
DNS lookup простой на хосте Время доставки
45. "Page load" это сложно
Ajax
CDN
Document vs. Event
Мобилки
Third-party
Плагинчики и эмбеды