Что происходит, когда вводишь запрос в Google в браузере и нажимаешь Enter?

«Что происходит, когда вводишь запрос в Google в браузере и нажимаешь Enter?» — вопрос из категории Сети, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

С точки зрения DevOps, процесс выглядит так:

  1. DNS-резолвинг: Браузер проверяет кэш, затем запрашивает у DNS-сервера (часто через systemd-resolved или dnsmasq). Если настроен локальный DNS-кеш типа unbound, запрос может обработаться быстрее.

    # Пример проверки DNS
    dig google.com +trace
  2. TCP-соединение: Устанавливается через трехэтапное рукопожатие. На уровне ОС это системный вызов socket()connect().

  3. TLS handshake (для HTTPS): Клиент и сервер согласовывают параметры шифрования. Как DevOps-инженер, я слежу за актуальностью cipher suites и версий TLS на серверах.

  4. HTTP/2 или HTTP/3 запрос: Браузер отправляет запрос. Google использует глобальную балансировку (GSLB) — DNS может вернуть IP ближайшего дата-центра.

  5. Обработка на стороне Google:

    • Запрос попадает на L7-балансировщик (возможно, на базе Envoy).
    • Балансировщик проверяет health status бэкендов.
    • Запрос маршрутизируется в кластер микросервисов.
    • Ответ генерируется, сжимается (gzip/brotli) и возвращается.
  6. CDN и кэширование: Статические ресурсы (CSS, JS, изображения) часто отдаются через CDN-сеть Google с edge-серверов.

С точки зрения инфраструктуры, это пример высокодоступной, географически распределенной системы с множеством уровней балансировки и кэширования.