Разбор самого задаваемоего вопроса на продакта в крупных IT компании
Привет, меня зовут Московченко Анастасия — продакт-менеджер в Дзене, ex-Yandex, VK, FunCorp и автор Telegram-канала Product Trends, в котором пишу о карьере и трендах в мире ИТ. В этой статье хочу поделиться ответом на вопрос: “Как работает Интернет?”.
Это будет полезно как и тем, кто только начинает путь в IT, так и опытным специалистам.
Почему задают этот вопрос?
Такой вопрос в основном задают начинающим специалистам или кандидатам, у которых нет опыта в IT, чтобы подтвердить минимальные знания в IT. Так как, чтобы работать с разработчиками и говорить с ними на одном языке, нужно понимать отличие клиента и сервера.
Вопросы могут звучать так:
- Пользователь открыл поисковую строку в браузере, что происходит дальше?
- Друг скинул ссылку в телеграм, что происходит, когда ее открываешь?
Как отвечать на вопрос
Приведу ответ в таком виде и с деталями достаточными для прохождениям собеседования на менеджерские позиции. Конечно, можно углубиться в этом вопросе глубже.
1. Адресация
В браузере отправляется запрос в DNS (Domain Name System — система доменных имён), это распределённая система для получения информации о домене, которая находит соответсвие доменного имени сайта с его ip-адресом.
Далее получаем ip-адрес сервера и сохраняем его в кэше браузера для последующих обращений.
Этот этап еще называется транспортным, тк процесс происходит на транспортном уровне на основе стека протоколов TCP/IP.
2. Установка соединения между клиентом и сервером
Теперь есть данные ip-адреса сервиса, и клиент уже знает, к какому сервису необходимо подключиться.
Тут достаточно сказать, что клиент соединяется с сервисом, и они устанавливают между собой соединение с помощью сетевых протоколов http/https.
• http — текстовый протокол, который служит для передачи информации между клиентом и сервером.
• https — тот же http, только защищенный через механизмы TLS (transport layer security) или SSL (secure sockets layer).
Круто будет, если еще расскажите про установку соединения и тройное рукопожатие (TCP-handshake, TLS-handshake).
3. Как общаются сервер и клиент
После установки соединения клиент отправляет запрос на сервер. Запрос выглядит, например, «GET /url HTTP/1.0»
Из чего состоит запрос:
- Метод HTTP
- URL
- Версия HTTP — 1.0, 1.1, 2.0. Последний отличается тем, что он — бинарный и внутри одного соединения много асинхронных запросов, то есть запрос выполняет быстрее
- Заголовки — описывают, что за документ пришел сервису.
Вот методы, которые необходимо знать:
GET — запрашивает предоставление ресурса
HEAD — принцип работы аналогичен методу GET, но метод HEAD не передает тело сообщения
POST — создание, изменяет состояние или побочные эффекты на сервере
PUT — обновление
DELETE — удаление указанного ресурса
Можно еще рассказать про cookie (фрагмент данных), это один из заголовков, который необходим для хранения данных на стороне пользователя, например, аутентификации, персональные настройки и тд.
4. Обработка запроса сервисом
Сервер принимает запрос, обрабатывает его и отправляет ответ клиенту.
Ответ состоит из:
- Кода ответа (например, 403 — нет доступа, 404 — ошибка клиента, 500 — ошибка сервиса) или 200 — ОК, ошибок нет
- Длина контента (заголовок Content-Length)
- Тип контента(заголовок Content-Type)
- Заголовки для кэширования
5. Рендеринг страницы в браузере
Браузер парсит полученный HTML и отрисовывает элемент на экране, и пользователь видит то, что хотел.
Дополнительные вопросы
При ответе на этот вопрос, интервьюер может задать уточняющие вопросы, не стоит их бояться и даже, если что-то не знаете, лучше скажите, что не знаете, чем придумывать что-то из головы, иначе все предыдущее впечатление сможете испортить.
Следующие вопросы в том числе когда-то задавали и мне:
1. Чем отличается TCP от UDP?
2. Чем отличается GET от POST?
3. Чем отличается HTTP от HTTPS?
Итого, ничего сложного нет, если прочитать несколько раз вдумчиво или посмотреть в браузере, как выглядят запросы и ответы, то все легко уложится в голове.
А задавали ли вам такие вопросы на собеседованиях на позицию продакт менеджера?