Ответ
С точки зрения DevOps, процесс выглядит так:
-
DNS-резолвинг: Браузер проверяет кэш, затем запрашивает у DNS-сервера (часто через
systemd-resolvedилиdnsmasq). Если настроен локальный DNS-кеш типаunbound, запрос может обработаться быстрее.# Пример проверки DNS dig google.com +trace -
TCP-соединение: Устанавливается через трехэтапное рукопожатие. На уровне ОС это системный вызов
socket()→connect(). -
TLS handshake (для HTTPS): Клиент и сервер согласовывают параметры шифрования. Как DevOps-инженер, я слежу за актуальностью cipher suites и версий TLS на серверах.
-
HTTP/2 или HTTP/3 запрос: Браузер отправляет запрос. Google использует глобальную балансировку (GSLB) — DNS может вернуть IP ближайшего дата-центра.
-
Обработка на стороне Google:
- Запрос попадает на L7-балансировщик (возможно, на базе Envoy).
- Балансировщик проверяет health status бэкендов.
- Запрос маршрутизируется в кластер микросервисов.
- Ответ генерируется, сжимается (gzip/brotli) и возвращается.
-
CDN и кэширование: Статические ресурсы (CSS, JS, изображения) часто отдаются через CDN-сеть Google с edge-серверов.
С точки зрения инфраструктуры, это пример высокодоступной, географически распределенной системы с множеством уровней балансировки и кэширования.