TGViewer
Dolgo.polo Dev | Денис Долгополов Dolgo.polo Dev | Денис Долгополов @dolgo_polo_dev · 2.18K subscribers
Post #112 2.84K
​​DNS в Android


• Когда дергается DNS-сервер?


У каждого сетевого запроса есть домен (например ya.ru)

Но для отправки интернет-запроса нужен не домен, а IP

Поэтому существуют DNS-сервера, которые обменивает домен в IP

Но на практике вручную отправлять запрос на DNS сервер не нужно — сетевой клиент это делает самостоятельно

Когда приложение дергает любую ручку, то клиент ищет в своих кэшах IP для этого домена. Если не находит, то делает запрос к DNS-серверу.


• Откуда клиент знает, на какой DNS-сервер слать запрос?


Клиент берет IP адреса DNS-сервера у системы. В нее обычно зашиты наиболее популярные DNS-сервера (например, гугловские 8.8.8.8)

При этом можно для каждой Wi-Fi сети указать свой DNS-сервер в настройках сети

Более того — для каждого OkHttpClient-а внутри приложения можно указать свой DNS-сервер

Под капотом там такая цепочка:

OkHttpClient -> DNS (интерфейс-колбек) -> InetAddresses (класс, который разруливает кэши и возвращает IP, связанные с доменом) -> Inet4Address/Inet6Address (классы, хранящие IP и мета-информацию)


• В какой момент домен обменивается на IP?

Когда в первый раз улетает запрос на определенный домен, клиент сначала выполняет запрос к DNS, а потом только сам запрос на ваш бекенд

При этом полученный IP сохраняется в DNS-кэш клиента

Поэтому первый запрос к бекенду будет лететь дольше, чем следующие


• Как долго живет DNS-кэш?

Точных данных не нашел, но судя по исходникам java net кэш очищается раз в какое-то время и при смене сети (переключении Wi-Fi или переходе на моб сеть)


• Можно ли вручную очиcтить DNS-кэш?

Неа, нет API для этого. Но можно в OkHttpClient передать свой DNS-колбек и самостоятельно делать запрос к DNS-серверу/организовать свой кэш
  • 🔥 18
  • 🍓 6
  • 👍 4
  • 🍾 4
More from @dolgo_polo_dev
  1. Jun 22, 2026Медиалента — то, что пользователь реально ощущает физически: скроллы, зумы, тапы. Любые ми…
  2. Jun 20, 2026👮‍♀️ Как VPN видит трафик всех приложений? технически VPN на андроид — это сервис внутри…
  3. Jun 13, 2026Дуров опять не старается 🍌🍌🍌 Пару месяцев назад команду телеграма ругали за то, что они…
  4. May 24, 2026🧬Может ли VPN ускорить интернет? Интуиция подсказывает — точно нет Добавляется лишний сер…
  5. May 22, 2026кто же знал, что основным выгодополучателем max 📲 окажется habr.com любая статья набирает…
  6. May 6, 2026вы снова не туда воюете сначала все пушили Compose типо верстать в 2 раза быстрее, можно с…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →