К какому свойству TTL должен относиться браузер, если вы используете запись CNAME?

У нас есть приложение, в домене которого есть запись CNAME. Тогда этот домен имеет запись А. Что произойдет, если эти 2 записи имеют разные свойства TTL? Например.

NAME                   TYPE   VALUE                TTL
----------------------------------------------------------------------
bar.example.com        CNAME  foo.example.com      3600 (60min)
foo.example.com        A      192.0.2.23           30   (30sec) 

В этом примере, если я нажму на bar.example.com, как долго будет храниться IP-адрес в браузере? Я заметил, что в chrome он будет кэшировать IP-адрес до 30 секунд, но я думаю, что разные браузеры могут иметь разные реализации. Я хотел бы знать, есть ли стандартный способ, которым это должно быть реализовано, или есть ли какие-либо браузеры, которые будут использовать 60-минутную запись. Я не могу найти документацию по этому вопросу.

1 ответ

Решение

Специальной обработки TTL для записей ресурсов CNAME не существует. В идеальном мире браузер должен запоминать каждую запись в соответствии с ее TTL.

То есть если новый CNAME для bar.example.com это указывало на baz.example.com был опубликован, браузер все еще может использовать старый, указывающий на foo.example.com до 3600 секунд. Во все времена он не мог вспомнить IP-адрес, связанный с именем foo.example.com в течение более 30 секунд.

Хотя я не пытался это проверить, я подозреваю, что многие реализации не так уж придирчивы, и я полагаю, что обычно используется TTL финальной записи A для всего bar.example.com -> 192.0.2.23 шаг.

Другие вопросы по тегам