Что это простыми словами
OkHttp — это курьер для данных между вашим приложением и интернетом.
Аналогия: представьте, что приложение на телефоне — это офис, а нужные данные лежат на складе где-то в другом конце города. Приложение не может само сходить за ними, поэтому отправляет курьера с запиской: «принеси список товаров» или «отнеси туда вот это сообщение». OkHttp — и есть такой курьер. Он знает, как дойти до склада, как правильно попросить данные и как принести ответ обратно.
Без такого курьера приложение не сможет показать вам погоду, отправить сообщение или загрузить новости — все эти данные живут в интернете, и за ними нужно сходить.
Официальное определение
Теперь, когда суть понятна, вот как OkHttp описывают в вакансиях и документации. Эту формулировку вы встретите у заказчика и в резюме — и теперь будете понимать, что за ней стоит.
«OkHttp — эффективный HTTP-клиент для Java и Kotlin с поддержкой HTTP/2, connection pooling и прозрачного сжатия».
Разберём по словам. «HTTP-клиент» — программа, которая запрашивает данные по протоколу HTTP (стандартному способу общения в интернете). «HTTP/2» — современная версия этого протокола, быстрее старой. «Connection pooling» — переиспользование соединений: вместо того чтобы каждый раз заново устанавливать связь, курьер запоминает дорогу и ходит быстрее. «Прозрачное сжатие» — данные передаются в упакованном виде, чтобы меньше трафика тратить, а OkHttp сам распаковывает их обратно.
Какую задачу решает
Любому приложению, которое работает с интернетом, нужно откуда-то брать данные или куда-то их отправлять: загрузить список товаров в магазине, отправить форму регистрации, скачать картинку профиля. Всё это — сетевые запросы, и кто-то должен их выполнять.
OkHttp берёт эту работу на себя. Он не просто ходит за данными, а делает это надёжно: если связь оборвалась, попробует снова; если данные уже загружались недавно, возьмёт их из кэша, чтобы не тратить время; если сервер медленный, не зависнет и вернёт ошибку, чтобы приложение могло среагировать.
Главная польза — разработчику не нужно вручную прописывать все эти правила. OkHttp уже умеет справляться с типичными проблемами сети.
К какой экосистеме относится
Языки — Java и Kotlin. Формально работает с обоими, но в современных проектах чаще встречается именно Kotlin.
Специальности — Android-разработчик (там OkHttp встречается чаще всего) и Backend-разработчик на Kotlin (когда сервер сам ходит за данными на другие серверы).
Важный нюанс: OkHttp часто используется вместе с библиотекой Retrofit. Retrofit надстраивается над OkHttp и делает код ещё короче и удобнее. Это не замена друг другу, а два слоя: Retrofit наверху, OkHttp под капотом. Поэтому в резюме часто увидите оба названия рядом — это нормально и ожидаемо.
Чем заменяется
OkHttp — не единственный способ ходить за данными в интернет. Ту же задачу решают другие HTTP-клиенты:
Ktor Client — современная альтернатива от создателей языка Kotlin, набирает популярность.
HttpURLConnection — встроенный в Java, но менее удобный и требует больше ручной работы.
Apache HttpClient — старая библиотека, в новых проектах почти не встречается.
Главное: переход между ними дешёвый. Все эти библиотеки делают одно и то же — отправляют запросы в интернет и получают ответы. Разработчик, который работал с OkHttp, разберётся в Ktor Client за считаные дни. Это не разные профессии, а разные инструменты для одной задачи.
Что не путать
OkHttp ≠ Retrofit. Это частая путаница. Retrofit использует OkHttp внутри, они работают вместе, а не вместо друг друга. Retrofit — удобная обёртка поверх OkHttp.
OkHttp ≠ сам протокол HTTP. HTTP — это правила общения в интернете, а OkHttp — программа, которая по этим правилам работает.
OkHttp ≠ backend-фреймворк вроде Ktor или Spring. Те создают сервер, который отвечает на запросы. OkHttp, наоборот, сам запросы отправляет.
OkHttp ≠ библиотека для работы с изображениями. Glide и Coil работают с картинками, но часто используют OkHttp внутри для их загрузки из интернета.
Насколько это важно при отборе
Короткий ответ: обычно это НЕ повод отбраковывать кандидата.
Самая частая ошибка новичка-рекрутера — искать строго «Kotlin + OkHttp» и отсеивать сильного разработчика, у которого в резюме указан Ktor Client или другой HTTP-клиент. Он освоит OkHttp за несколько дней, потому что задача та же. Отсеивая по конкретной библиотеке, вы теряете хороших людей и затягиваете поиск.
Правильный подход: смотрите, есть ли у кандидата опыт с любым HTTP-клиентом для работы с сетью. Если есть — этого достаточно. Если в вакансии жёстко написано «только OkHttp», уточните у нанимающего менеджера, действительно ли это принципиально: часто оказывается, что нет.
Когда всё же стоит обратить внимание: если у кандидата вообще нигде не упомянут опыт работы с сетевыми запросами, а вакансия предполагает активное общение с серверами — это повод спросить, как он получал данные из интернета в своих проектах.
Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.