Обязательно ли обмен данными по HTTP должен осуществляться между браузером и сервером?
HTTP не требует участия браузера. Клиентом может быть серверный сервис, мобильное приложение, CLI, тестовый инструмент или устройство.
Читать ответПодготовка к интервью
Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.
Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.
Каталог
HTTP не требует участия браузера. Клиентом может быть серверный сервис, мобильное приложение, CLI, тестовый инструмент или устройство.
Читать ответПовторяют временные сбои с учётом идемпотентности операции: например, 429, 502, 503 или 504. Число попыток и общий срок обязательно ограничивают.
Читать ответБраузер определяет адрес и IP через доступные кеши/DNS, устанавливает соединение и при HTTPS защищённый канал, затем отправляет HTTP-запрос.
Читать ответHTTP 404 обычно не отклоняет Promise fetch: он выполняется с Response, у которого ok=false. Без явного throw не возникает именно необработанного Promise-rejection из-за статуса.
Читать ответОжидаемые HTTP-ошибки обрабатывают в потоке запроса и UI, общие — через interceptor, необработанные — через ErrorHandler. Не стоит превращать любой сбой в успешный пустой ответ.
Читать ответИспользуйте пул из N goroutine и канал адресов. Каждая goroutine выполняет запрос с timeout, закрывает response body и печатает статус; N=1 даёт последовательное выполнение.
Читать ответHTTP-запрос логически состоит из метода и адреса ресурса, заголовков и необязательного тела. Представление на проводе зависит от версии HTTP.
Читать ответПодмените HTTP-запросы управляемыми Promise и проверьте ограничение одновременных запусков, порядок результатов, ошибки и завершение очереди.
Читать ответПосле fetch проверяйте response.ok и превращайте неуспешный HTTP-статус в ошибку внутри retry-цикла. Сам fetch обычно не отклоняет Promise из-за 4xx или 5xx.
Читать ответHTTP/1.1 передаёт сообщения последовательно в соединении, HTTP/2 мультиплексирует потоки поверх TCP, а HTTP/3 использует QUIC поверх UDP.
Читать ответПри обычной навигации браузер запрашивает документ методом GET, например GET / по HTTPS. DNS и установление защищённого соединения происходят до этого и не являются таким HTTP-запросом.
Читать ответПример: Accept: application/json сообщает серверу, что клиент предпочитает получить ответ в формате JSON.
Читать ответ