Как OkHttp-клиент выполняет сетевой запрос под капотом

Коротко:
OkHttp-клиент — самый популярный сетевой клиент на Android, поверх которого часто используют Retrofit
Главное — он умеет много всего из коробки:
записывать/читать кэш, управлять им с помощью хэдера cache-control
управлять cookie и разруливать их атрибуты
устанавливать соединение по http1 и http2 (а по http3 нет, завидуем iOS-разработчикам)
выбирать сеть, по которой будет выполнен запрос
работать с DNS и направлять трафик через Proxy
поддерживает разные виды сжатия трафика
выполнять сам запрос, то есть как раз передавать байты по интернету. при этом "движок", выполняющий запрос, можно подменить
А возможно это все благодаря Interceptor-ам — цепочке колбеков, позволяющих прочитать/изменить запрос и ответ
Вы можете написать кастомные Interceptor-ы и добавить их в список appInterceptor-ов или networkInterceptor-ов
Или можете залезть в исходники OkHttp и посмотреть на его стандартные Interceptor-ы, в которых как раз и реализована вся вышеперечисленная магия
На картинке:
отличия между appInterceptor-ами или networkInterceptor-ами
стандартные OkHttp Interceptor-ы и их роль
остальные посты о сети и сетевых клиентах - @dolgo_polo_dev