[{"data":1,"prerenderedAt":1308},["ShallowReactive",2],{"$foPNR4SrJXcOkVKvOxpO79Bx3lUdmsGDOJda99vCbM14":3,"$fMMUdSFktwQFqMVGPrTtt3EC5yheBp7PzwIqznamFcMo":147,"$fc0LoAJgqXDLbKKd2JS_NpM4SuzBK8EycUXINSg09CKU":150,"$fM3ea55k6lKMPOTM84llDB26VSQDVVbxiQuSBFQw9P_c":155,"$f1Prj1xEczHja_-L7FyIGgRHd5_cSWHo7r6AE5aheAik":500,"$fI5fDmvm-5tr9wcH0eHaKZa1j3y_FQIQaHHPqbZxAHJE":722,"mdc--wflcxn-key":742,"mdc-vek5cf-key":754,"mdc--igfmdr-key":762,"mdc--3xzza5-key":770,"mdc-rhm8mk-key":778,"mdc--ito4m1-key":786,"mdc--nb5e4u-key":815,"mdc-qo2ydj-key":824,"mdc--betszx-key":844,"mdc-d1eaxr-key":853,"mdc--vj1bpd-key":889,"mdc--x2f0ll-key":897,"mdc-sabx4r-key":938,"mdc-plolgs-key":957,"mdc-d4ix2u-key":976,"mdc--suwfap-key":984,"mdc-4s79c1-key":1005,"mdc-f5scxl-key":1096,"mdc--hnzysw-key":1231,"mdc--um9hnu-key":1244,"mdc-tz1coq-key":1252,"mdc-e7pgwf-key":1274,"mdc--xe6zza-key":1292,"mdc-1pe0y4-key":1300},{"content":4,"quizQuestionContent":117,"type":136,"pageMeta":137},[5,9,13,16,20,24,28,31,34,38,41,45,48,52,55,58,62,65,69,73,76,80,83,87,91,94,97,101,104,108,111,114],{"id":6,"value":7,"isTypeH1":8},"1903","Как домен попадает в DNS: соответствие домен → IP",true,{"id":10,"value":11,"anchor":12,"isTypeH2":8},"4359","Что такое «таблица домен → IP» в DNS","what-a-domain-to-ip-table-means-in-dns",{"id":14,"value":15,"isTypeParagraph":8},"10022","DNS не является одной общей таблицей на весь интернет; это распределенная база, где данные хранятся в виде ресурсных записей (RR) внутри зон (zone), обслуживаемых авторитетными DNS‑серверами.  \nСоответствие «домен → IP» обычно задается записями A (IPv4) и AAAA (IPv6).  \nРезолвер (resolver) — компонент на стороне клиента/провайдера DNS — получает ответы от DNS‑серверов и может кэшировать их, чтобы не ходить в сеть повторно при каждом запросе.",{"id":17,"description":18,"titleAlert":19,"isTypeAlertInfo":8},"634","«Домен → IP» — это частный случай: в DNS могут храниться и другие типы данных (например, MX, TXT, CNAME), а «IP → домен» делается через PTR в специальных зонах обратного разрешения.\n",null,{"id":21,"value":22,"anchor":23,"isTypeH2":8},"4360","Пошагово: как домен становится «домен → IP»","step-by-step-how-a-domain-becomes-domain-to-ip",{"id":25,"value":26,"anchor":27,"isTypeH3":8},"4364","Делегирование: как понять, куда спрашивать","delegation-how-to-know-where-to-ask",{"id":29,"value":30,"isTypeParagraph":8},"10023","Чтобы резолвер нашел записи домена, сначала должны быть известны авторитетные серверы зоны домена.  \nДля этого в родительской зоне (например, в зоне TLD) публикуются NS‑записи делегирования, указывающие имена авторитетных DNS‑серверов дочерней зоны, а иногда добавляются «glue» адресные записи, чтобы разорвать циклическую зависимость при «внутридоменном» nameserver (например, `ns1.example.com` для `example.com`).  \nЛогика такова: родительская зона сообщает, какие NS обслуживают дочернюю зону, а при необходимости дополнительно сообщает IP этих NS (glue), чтобы резолвер смог связаться с ними сразу.",{"id":32,"description":33,"titleAlert":19,"isTypeAlertWarning":8},"690","Если NS указывает на nameserver внутри самого домена и glue не задан или устарел, возможны петли и недоступность разрешения имени до исправления делегирования.",{"id":35,"value":36,"anchor":37,"isTypeH3":8},"4365","Авторитетная зона: где хранится A/AAAA","authoritative-zone-where-a-aaaa-live",{"id":39,"value":40,"isTypeParagraph":8},"10024","После делегирования необходима зона домена на авторитетном DNS‑сервере (или у DNS‑провайдера), где хранится набор RR, описывающий данные этой зоны.  \nЗона включает как минимум SOA (начало зоны) и обычно NS, а записи «домен → IP» задаются A/AAAA для нужных имен (например, `@`, `www`, `api`).  \nTTL в каждой записи задает, как долго резолвер может кэшировать ответ, прежде чем снова обратиться к источнику данных.",{"id":42,"value":43,"anchor":44,"isTypeH3":8},"4366","Разрешение имени: как резолвер находит IP","name-resolution-how-resolver-finds-ip",{"id":46,"value":47,"isTypeParagraph":8},"10025","Резолвер идет по иерархии DNS итеративно: получает направление от корня к TLD, затем к авторитетным серверам зоны домена, и уже там получает A/AAAA.  \nАвторитетные серверы отвечают на запросы, используя данные своей зоны, и возвращают «финальный» ответ для конкретного имени.  \nРезультат кэшируется на время TTL, поэтому «обновление DNS» на практике проявляется как ожидание истечения TTL в кэшах.",{"id":49,"value":50,"anchor":51,"isTypeH3":8},"4367","Отрицательные ответы и «почему не находится»","negative-answers-and-why-it-doesnt-resolve",{"id":53,"value":54,"isTypeParagraph":8},"10026","Если имени или записи не существует, возвращается отрицательный ответ (например, NXDOMAIN), который тоже может кэшироваться.  \nУ отрицательного кэширования есть собственное время жизни, связанное с параметрами SOA, поэтому после добавления записи задержка иногда сохраняется до истечения отрицательного TTL.  \nИз-за этого ситуация «запись уже добавлена, но еще не находится» является типичной.",{"id":56,"description":57,"titleAlert":19,"isTypeAlertInfo":8},"635","Проверка «почему не работает» обычно включает не только наличие A/AAAA, но и корректность делегирования (NS/glue), а также учет положительного и отрицательного кэша по TTL.",{"id":59,"value":60,"anchor":61,"isTypeH2":8},"4361","Мини-схема процесса (текстовая)","mini-process-diagram-text",{"id":63,"value":64,"isTypeParagraph":8},"10027","```\nКлиент → (stub resolver) → рекурсивный резолвер\n                         |\n                         | 1) запрос к root: \"где зона .tld?\"\n                         v\n                      root DNS\n                         |\n                         | referral NS для TLD\n                         v\n                       TLD DNS\n                         |\n                         | referral NS (+ glue при необходимости)\n                         v\n            авторитетные DNS домена (зона)\n                         |\n                         | ответ: A/AAAA для имени\n                         v\n                 резолвер кэширует по TTL\n                         |\n                         v\n                      клиент получает IP\n```\n\nОсновные роли: резолвер извлекает данные и кэширует, а авторитетные серверы хранят зону и отдают записи.",{"id":66,"value":67,"anchor":68,"isTypeH2":8},"4362","Где именно хранится «соответствие»","where-exactly-the-mapping-is-stored",{"id":70,"value":71,"anchor":72,"isTypeH3":8},"4368","Таблица: какие записи и на каком уровне","table-records-and-levels",{"id":74,"value":75,"isTypeParagraph":8},"10028","| Уровень | Что хранится | Зачем нужно |\n|---|---|---|\n| Родительская зона (например, TLD) | NS делегирования дочерней зоны; иногда glue A/AAAA для nameserver | Чтобы указать резолверу, к каким авторитетным серверам идти дальше, и избежать циклов при nameserver «внутри домена» |\n| Зона домена (authoritative) | SOA, NS, A/AAAA, CNAME и т.д. | Здесь и находится фактическое «домен → IP» через A/AAAA |\n| Кэши резолверов | Копии ответов, отрицательные ответы | Ускорение работы; ответы действуют до истечения TTL |",{"id":77,"value":78,"anchor":79,"isTypeH3":8},"4369","Таблица: ключевые типы RR для веба","key-rr-types-for-web",{"id":81,"value":82,"isTypeParagraph":8},"10029","| Тип | Смысл | Пример назначения |\n|---|---|---|\n| A | IPv4 адрес хоста | `www.example.com → 203.0.113.10` |\n| AAAA | IPv6 адрес хоста | `www.example.com → 2001:db8::10` |\n| CNAME | Псевдоним на каноническое имя | `www → site.hosting.net` (потом уже A/AAAA у target) |\n| NS | Авторитетный nameserver зоны | Делегирование и обслуживание зоны |\n| SOA | «Старт» зоны и параметры | В т.ч. используется в отрицательном кэшировании |",{"id":84,"value":85,"anchor":86,"isTypeH2":8},"4363","Примеры конфигураций и команд","examples-configs-and-commands",{"id":88,"value":89,"anchor":90,"isTypeH3":8},"4370","Пример zone file (BIND-подобный формат)","zone-file-example",{"id":92,"value":93,"isTypeParagraph":8},"10030","```\n$ORIGIN example.com.\n$TTL 3600\n\n@   IN  SOA ns1.example.com. hostmaster.example.com. (\n        2026022001  ; serial\n        3600        ; refresh\n        600         ; retry\n        1209600     ; expire\n        300         ; minimum (часто влияет на отрицательный TTL)\n)\n\n    IN  NS  ns1.example.com.\n    IN  NS  ns2.example.net.\n\n; glue обычно не здесь, а в родительской зоне (TLD), если ns1 внутри домена\n\n@   IN  A     203.0.113.10\nwww IN  A     203.0.113.10\napi IN  A     203.0.113.11\n\n@   IN  AAAA  2001:db8:100::10\nwww IN  AAAA  2001:db8:100::10\n\n; псевдоним\nblog IN CNAME www.example.com.\n```",{"id":95,"description":96,"titleAlert":19,"isTypeAlertWarning":8},"691","Если в узле есть CNAME, другие данные на этом же имени по правилам DNS обычно не должны сосуществовать, иначе возникает неоднозначность.",{"id":98,"value":99,"anchor":100,"isTypeH3":8},"4371","Пример проверки цепочки делегирования","check-delegation-chain-example",{"id":102,"value":103,"isTypeParagraph":8},"10031","Команда для наблюдения шагов резолвинга: `dig +trace www.example.com A`.  \nПри таком запросе обычно видны переходы root → TLD → authoritative, после чего получается A‑ответ из зоны домена.",{"id":105,"value":106,"anchor":107,"isTypeH3":8},"4372","Пример динамического обновления (DNS UPDATE)","dynamic-update-example",{"id":109,"value":110,"isTypeParagraph":8},"10032","DNS‑записи могут обновляться не только редактированием файлов зоны, но и механизмом DNS UPDATE: выполняется добавление/удаление записей в зоне через запрос обновления при наличии прав.\n\n```\nserver 192.0.2.53\nzone example.com.\n\nupdate delete api.example.com. A\nupdate add    api.example.com. 300 A 203.0.113.99\n\nsend\n```",{"id":112,"description":113,"titleAlert":19,"isTypeAlertWarning":8},"692","Динамические обновления требуют строгой аутентификации и контроля доступа, иначе возникает риск несанкционированной модификации зоны.",{"id":115,"value":116,"isTypeParagraph":8},"10033","Кратко: соответствие «домен → IP» появляется в авторитетной зоне как A/AAAA, находится через делегирование NS (иногда с glue), а «задержки» обычно объясняются кэшированием и TTL.",{"id":118,"options":119,"hint":133,"solution":134,"description":135},"1142",[120,124,127,130],{"id":121,"label":122,"isCorrect":123},"4700","Домен попадает в DNS как «домен → IP» автоматически после покупки домена: регистратор сам создает A-запись и публикует ее во всех DNS-серверах интернета. Затем браузеры пользователей синхронизируют эту запись и начинают направлять трафик на новый IP без участия владельца домена.",false,{"id":125,"label":126,"isCorrect":8},"4701","Домен попадает в DNS как «домен → IP» тогда, когда в авторитетной зоне домена создается ресурсная запись типа A/AAAA, а в родительской зоне настраивается делегирование на авторитетные DNS-серверы (NS, при необходимости glue). Далее резолверы находят авторитетный сервер по цепочке root → TLD → зона домена и кэшируют ответ по TTL.",{"id":128,"label":129,"isCorrect":123},"4702","Домен попадает в DNS как «домен → IP» через BGP: как только сервер получает публичный IP и объявляет маршрут, DNS-серверы «видят» этот маршрут и автоматически связывают домен с IP. Поэтому для смены IP достаточно изменить маршрутизацию, а DNS записи не требуются.",{"id":131,"label":132,"isCorrect":123},"4703","Домен попадает в DNS как «домен → IP» после выпуска TLS‑сертификата: центр сертификации публикует соответствие домена и IP в глобальной базе, а DNS-серверы копируют эти данные себе. Из-за этого домен начинает разрешаться только после успешной проверки владения доменом при выпуске сертификата.","Для ответа на вопрос «как домен попадает в DNS в соответствие домен–IP» достаточно удерживать три слоя:  \n1) Делегирование: NS (и иногда glue) в родительской зоне указывает, где искать зону.  \n2) Данные зоны: A/AAAA внутри авторитетной зоны задают «имя → IP».  \n3) Доставка до пользователя: резолвер проходит root → TLD → authoritative и кэширует по TTL (включая отрицательный кэш).","Правильный ответ: 2 - Домен попадает в DNS как «домен → IP» тогда, когда в авторитетной зоне домена создается ресурсная запись типа A/AAAA, а в родительской зоне настраивается делегирование на авторитетные DNS-серверы (NS, при необходимости glue). Далее резолверы находят авторитетный сервер по цепочке root → TLD → зона домена и кэшируют ответ по TTL.\n","Как домен попадает в DNS в таблицу соответствия: домен – ip","quizQuestion",{"title":135,"description":138,"ogTitle":7,"ogDescription":139,"ogImageUrl":140,"canonical":19,"ogLocale":141,"ogSiteName":142,"ogImageType":143,"ogImageWidth":144,"ogImageHeight":145,"ogType":146,"ogUrl":19},"Зоны, делегирование NS, glue, A/AAAA, кеширование TTL и обновления DNS — последовательно и с примерами.","Задача на понимание работы DNS, системного администрирования","/og-image.png","ru_RU","goodwebjob.ru","image_jpeg","1200","630","article",{"siteName":148,"siteUrl":149},"GOOD WEB JOB!","https://goodwebjob.ru",[151],{"label":152,"slug":153,"to":154},"Подготовка к тех.интервью","technical-interview","/technical-interview/where-to-begin",{"navigationList":156,"navigationSublist":164},[157,160],{"path":154,"isActive":123,"name":158,"icon":159,"isNavbarMobileDisabled":8},"С чего начать?","material-symbols:visibility-outline-rounded",{"path":161,"isActive":8,"name":162,"icon":163,"isNavbarMobileDisabled":123},"/technical-interview/tasks","Сборник задач","material-symbols:task-outline",[165,174,201,213,219,360,384,393,399,461,482,488],{"title":166,"list":167,"isOpened":123},"Bash",[168,171],{"name":169,"path":170,"isActive":123},"Дан фрагмент bash-скрипта: cd ~; mkdir foo... Что в нем происходит?","/technical-interview/tasks/here-is-a-fragment-of-a-bash-script-cd-mkdir-foo-what-is-happening-in-this-script",{"name":172,"path":173,"isActive":123},"Дан фрагмент bash-скрипта: target=$(ps -Af | grep $1 | head -n 1)...","/technical-interview/tasks/here-is-a-fragment-of-a-bash-script-target-ps-af-grep-1-head-n-1",{"title":175,"list":176,"isOpened":123},"CSS",[177,180,183,186,189,192,195,198],{"name":178,"path":179,"isActive":123},"Дан HTML-код. Какой будет цвет у текста «Some dummy text»?","/technical-interview/tasks/the-html-code-is-given-what-will-be-the-color-of-the-some-dummy-text",{"name":181,"path":182,"isActive":123},"Есть шаблон HTML и CSS кода. Какой будет цвет у текста «Таким образом, постоянное»?","/technical-interview/tasks/there-is-a-template-for-html-and-css-code-what-color-will-the-text-thus-constant-have",{"name":184,"path":185,"isActive":123},"Есть шаблон вложенного HTML кода. Какой будет цвет у текста «One more dummy text»?","/technical-interview/tasks/there-is-a-template-for-embedded-html-code-what-will-be-the-color-of-the-one-more-dummy-text",{"name":187,"path":188,"isActive":123},"Есть шаблон вложенного HTML кода. Будет ли display:block у body влиять на span?","/technical-interview/tasks/there-is-a-template-for-embedded-html-code-will-there-be-a-display-does-bodys-block-affect-span",{"name":190,"path":191,"isActive":123},"Есть HTML код. Будет ли font-weight на span влиять?","/technical-interview/tasks/there-is-an-html-code-will-font-weight-affect-span",{"name":193,"path":194,"isActive":123},"Flexbox и Grid, чем отличаются друг от друга?","/technical-interview/tasks/what-are-the-differences-between-flexbox-and-grid",{"name":196,"path":197,"isActive":123},"Заменяют ли Flexbox и Grid друг друга?","/technical-interview/tasks/do-flexbox-and-grid-replace-each-other",{"name":199,"path":200,"isActive":123},"Есть CSS и JS анимация. Какая между ними разница, что быстрее, что более удобно?","/technical-interview/tasks/there-are-css-and-js-animations-what-is-the-difference-between-them-and-which-is-faster-and-more-convenient",{"title":202,"list":203,"isOpened":123},"Git",[204,207,210],{"name":205,"path":206,"isActive":123},"Разрабатывал, взял закоммитил, запушил. Оказалось, что запушил не в ту ветку, точнее, коммит не в ту ветку. Какие действия?","/technical-interview/tasks/developed-it-committed-it-and-launched-it-it-turned-out-that-i-had-pushed-it-to-the-wrong-branch-or-rather-the-commit-was-in-the-wrong-branch-what-actions",{"name":208,"path":209,"isActive":123},"В git есть несколько вариантов слияния веток, какие? Чем отличаются?","/technical-interview/tasks/git-has-several-options-for-merging-branches-which-ones-how-are-they-different",{"name":211,"path":212,"isActive":123},"Какие существуют стратегии ветвления для работы команды? Что это такое?","/technical-interview/tasks/what-are-the-branching-strategies-for-the-team-what-is-it",{"title":214,"list":215,"isOpened":123},"HTML",[216],{"name":217,"path":218,"isActive":123},"Что такое HTML?","/technical-interview/tasks/what-is-html",{"title":220,"list":221,"isOpened":123},"JavaScript",[222,225,228,231,234,237,240,243,246,249,252,255,258,261,264,267,270,273,276,279,282,285,288,291,294,297,300,303,306,309,312,315,318,321,324,327,330,333,336,339,342,345,348,351,354,357],{"name":223,"path":224,"isActive":123},"Какие логические значения в console.log будут получены?","/technical-interview/tasks/prototype-what-logical-values-will-be-received-in-console-log",{"name":226,"path":227,"isActive":123},"Почему опасно писать прямо в прототипы базовых типов?","/technical-interview/tasks/why-is-it-dangerous-to-write-directly-to-the-prototypes-of-basic-types",{"name":229,"path":230,"isActive":123},"Что вернёт следующий код? Object.create(null).hasOwnProperty('toString')","/technical-interview/tasks/what-will-the-following-code-return-object-create-null-has-own-property-to-string",{"name":232,"path":233,"isActive":123},"Какое значение выведет консоль с object.property?","/technical-interview/tasks/what-value-will-the-console-output-with-object-property",{"name":235,"path":236,"isActive":123},"Что выведется в console.log([arr[0](), arr[0]()])?","/technical-interview/tasks/what-will-be-displayed-in-console-log-arr-0-arr-0",{"name":238,"path":239,"isActive":123},"Что выведет console.log в результате выполнения цикла while?","/technical-interview/tasks/what-will-console-log-output-as-a-result-of-executing-the-while-loop",{"name":241,"path":242,"isActive":123},"Есть функция и объект. Напишите все известные вам способы, чтобы вывести в консоли значение x из объекта, используя функцию","/technical-interview/tasks/there-is-a-function-and-an-object-write-all-the-ways-you-know-to-output-the-value-of-x-from-an-object-in-the-console-using-the-function",{"name":244,"path":245,"isActive":123},"Что вернёт метод book.getUpperName()?","/technical-interview/tasks/what-will-the-book-get-upper-name-method-return",{"name":247,"path":248,"isActive":123},"Переменные объявлены следующим образом: a=3; b=«hello»;. Укажите правильное утверждение","/technical-interview/tasks/variables-are-declared-as-follows-specify-the-correct-statement",{"name":250,"path":251,"isActive":123},"Что выведет консоль в случае присвоения свойства массиву по строковому положительному индексу?","/technical-interview/tasks/what-will-the-console-display-if-a-property-is-assigned-to-an-array-using-a-positive-string-index",{"name":253,"path":254,"isActive":123},"Что выведет консоль в случае присвоения свойства массиву по строковому отрицательному индексу?","/technical-interview/tasks/what-will-the-console-display-if-a-property-is-assigned-to-an-array-using-a-negative-string-index",{"name":256,"path":257,"isActive":123},"Что выведет консоль в случае удаления элемента массива с помощью оператора delete?","/technical-interview/tasks/what-will-the-console-output-if-an-array-element-is-deleted-using-the-delete-operator",{"name":259,"path":260,"isActive":123},"Что вернёт этот код: typeof (function(){})()","/technical-interview/tasks/what-this-code-will-return-typeof-function",{"name":262,"path":263,"isActive":123},"Что получится в результате передачи объекта как аргумента в функцию и выполнения кода?","/technical-interview/tasks/what-will-happen-when-an-object-is-passed-as-an-argument-to-a-function-and-the-code-is-executed",{"name":265,"path":266,"isActive":123},"Какие способы объявления функции есть в JavaScript?","/technical-interview/tasks/what-are-the-ways-to-declare-a-function-in-javascript",{"name":268,"path":269,"isActive":123},"Что такое this в JavaScript?","/technical-interview/tasks/what-is-this-in-javascript",{"name":271,"path":272,"isActive":123},"Что такое Event Loop, как работает?","/technical-interview/tasks/what-is-an-event-loop-and-how-does-it-work",{"name":274,"path":275,"isActive":123},"Что будет, если вызвать typeof на необъявленной переменной?","/technical-interview/tasks/what-happens-if-you-call-typeof-on-an-undeclared-variable",{"name":277,"path":278,"isActive":123},"Что показывает оператор typeof в JavaScript?","/technical-interview/tasks/what-does-the-typeof-operator-show-in-javascript",{"name":280,"path":281,"isActive":123},"Какие типы данных существует в JavaScript?","/technical-interview/tasks/what-types-of-data-exist-in-javascript",{"name":283,"path":284,"isActive":123},"Какую структуру использовать для хранения упорядоченного списка строк в JavaScript?","/technical-interview/tasks/what-is-the-best-structure-to-use-for-storing-an-ordered-list-of-strings-in-javascript",{"name":286,"path":287,"isActive":123},"Что вернет typeof для массива?","/technical-interview/tasks/what-will-typeof-return-for-an-array",{"name":289,"path":290,"isActive":123},"Почему оператор typeof, применённый к массиву, возвращает объект?","/technical-interview/tasks/why-does-the-typeof-operator-applied-to-an-array-return-an-object",{"name":292,"path":293,"isActive":123},"Если нужно хранить список уникальных строк, какую структуру данных выбрать?","/technical-interview/tasks/if-you-need-to-store-a-list-of-unique-strings-which-data-structure-should-i-choose",{"name":295,"path":296,"isActive":123},"Что возвращает typeof для new Set в JavaScript?","/technical-interview/tasks/what-does-typeof-return-for-new-set-in-javascript",{"name":298,"path":299,"isActive":123},"Почему в JavaScript два объекта с одинаковым содержимым при сравнении возвращают false?","/technical-interview/tasks/why-do-two-objects-with-the-same-content-return-false-when-compared-in-javascript",{"name":301,"path":302,"isActive":123},"В чем разница между микро- и макро-тасками в JavaScript?","/technical-interview/tasks/what-is-the-difference-between-micro-and-macro-tasks-in-javascript",{"name":304,"path":305,"isActive":123},"arr.push(0) повлияет на массив так же, как если бы мы выполнили...","/technical-interview/tasks/arr-push-0-will-affect-the-array-in-the-same-way-as-if-we-performed",{"name":307,"path":308,"isActive":123},"Вернуть массив от 1 до n, где числа, кратные 3, заменены на 'fizz', кратные 5 - на 'buzz', а кратные и 3, и 5 одновременно - на 'fizzbuzz'","/technical-interview/tasks/returns-an-array-from-1-to-n-replacing-numbers-that-are-multiples-of-3-with-fizz-numbers-that-are-multiples-of-5-with-buzz-and-numbers-that-are-multiples-of-both-3-and-5-with-fizzbuzz",{"name":310,"path":311,"isActive":123},"Дана строка: 'one.two.three.four.five'. Необходимо из строки сделать вложенный объект","/technical-interview/tasks/the-string-one-two-three-four-five-is-given-it-is-necessary-to-make-a-nested-object-out-of-the-string",{"name":313,"path":314,"isActive":123},"Дано дерево (вложенный объект), надо найти сумму всех вершин","/technical-interview/tasks/given-a-tree-nested-object-it-is-necessary-to-find-the-sum-of-all-vertices",{"name":316,"path":317,"isActive":123},"Для каждого вложенного объекта нужно добавить свойство level, которое равняется числу - номер вложенности","/technical-interview/tasks/for-each-nested-object-you-need-to-add-the-level-property-which-is-equal-to-a-number-the-nesting-number",{"name":319,"path":320,"isActive":123},"Для каждой ветви дерева записать номер вложенности данной ветви","/technical-interview/tasks/for-each-branch-of-the-tree-write-down-the-nesting-number-of-this-branch",{"name":322,"path":323,"isActive":123},"Есть массив, в котором лежат объекты с датами, необходимо отсортировать даты по возрастанию","/technical-interview/tasks/there-is-an-array-containing-objects-with-dates-that-need-to-be-sorted-by-date",{"name":325,"path":326,"isActive":123},"Есть слова в массиве, необходимо определить, состоят ли они из одних и тех же букв","/technical-interview/tasks/there-are-words-in-the-array-it-is-necessary-to-determine-whether-they-consist-of-the-same-letters",{"name":328,"path":329,"isActive":123},"Есть строка, состоящая из разных скобок, необходимо проверить, закрыты ли все","/technical-interview/tasks/there-is-a-string-consisting-of-different-brackets-it-is-necessary-to-check-whether-all-are-closed",{"name":331,"path":332,"isActive":123}," Найти в массиве неповторяющиеся числа","/technical-interview/tasks/find-non-repeating-numbers-in-an-array",{"name":334,"path":335,"isActive":123},"Напишите функцию, который сделает из массива объект","/technical-interview/tasks/write-a-function-that-will-make-an-object-out-of-an-array",{"name":337,"path":338,"isActive":123},"Необходимо проверить, являются ли две строки анаграммами друг друга","/technical-interview/tasks/checks-whether-two-strings-are-anagrams-of-each-other",{"name":340,"path":341,"isActive":123},"Нечётные числа должны отсортироваться по возрастанию, а чётные должны остаться на своих местах","/technical-interview/tasks/odd-numbers-should-be-sorted-in-ascending-order-and-even-numbers-should-remain-in-their-original-positions",{"name":343,"path":344,"isActive":123},"Определить, является ли слово палиндромом","/technical-interview/tasks/determines-whether-a-word-is-a-palindrome",{"name":346,"path":347,"isActive":123},"«Расплющивание» массива","/technical-interview/tasks/flattening-the-array",{"name":349,"path":350,"isActive":123},"Реализовать функцию, принимающую аргументы \"*\", \"1\", \"b\", \"1c\" и возвращающую строку \"1*b*1c\"","/technical-interview/tasks/implement-a-function-that-accepts-arguments-1-b-1c-and-the-return-string-1-b-1c",{"name":352,"path":353,"isActive":123},"Сжатие строк","/technical-interview/tasks/string-compression",{"name":355,"path":356,"isActive":123},"Уникализация значений в массиве","/technical-interview/tasks/unifying-values-in-an-array",{"name":358,"path":359,"isActive":123},"Числа от 1 до 100 находятся в массиве, они хаотично перемешанные, но в нём не хватает одного числа из этой последовательности. Необходимо найти его","/technical-interview/tasks/the-numbers-from-1-to-100-are-in-the-array-they-are-randomly-mixed-but-it-lacks-one-number-from-this-sequence-it-is-necessary-to-find-him",{"title":361,"list":362,"isOpened":123},"React",[363,366,369,372,375,378,381],{"name":364,"path":365,"isActive":123},"Для чего нужен React, какие он решает проблемы?","/technical-interview/tasks/what-is-react-used-for-and-what-problems-does-it-solve",{"name":367,"path":368,"isActive":123},"Какой механизм лежит в основе оптимизации обновлений DOM в React?","/technical-interview/tasks/what-is-the-underlying-mechanism-for-optimizing-dom-updates-in-react",{"name":370,"path":371,"isActive":123},"Если убрать в React VDOM/Fiber, и вручную изменять DOM, разве это не оптимально?","/technical-interview/tasks/if-you-remove-the-vdom-fiber-in-react-and-manually-change-the-dom-isn-t-that-optimal",{"name":373,"path":374,"isActive":123},"Есть блок кода. Что в реальном DOM изменится после нажатия на кнопку?","/technical-interview/tasks/there-is-a-block-of-code-what-changes-in-the-real-dom-after-clicking-the-button",{"name":376,"path":377,"isActive":123},"Есть код, в котором список и кнопка. Что в реальном DOM изменится после нажатия на кнопку?","/technical-interview/tasks/there-is-a-code-in-which-there-is-a-list-and-a-button-what-will-change-in-the-real-dom-after-clicking-on-the-button",{"name":379,"path":380,"isActive":123},"Зачем нужен Redux (Mobx/Effector)? Зачем нужен менеджер состояния? Какие проблемы решает?","/technical-interview/tasks/why-do-we-need-redux-mobx-effector-why-do-we-need-a-state-manager-what-problems-does-it-solve",{"name":382,"path":383,"isActive":123},"Что мешает организовать централизованное состояние без менеджера состояния? Если организовать состояние механизмами реакта: контекстом, стейтом, в чем проблема? Что менеджеры состояния привносят?","/technical-interview/tasks/what-prevents-you-from-organizing-a-centralized-state-without-a-state-manager-if-you-organize-the-state-using-react-context-and-state-mechanisms-what-is-the-problem-what-do-state-managers-add",{"title":385,"list":386,"isOpened":123},"Алгоритмы",[387,390],{"name":388,"path":389,"isActive":123},"Что такое алгоритмическая сложность?","/technical-interview/tasks/what-is-algorithmic-complexity",{"name":391,"path":392,"isActive":123},"Какая алгоритмическая сложность у \"быстрой сортировки\"?","/technical-interview/tasks/what-is-the-algorithmic-complexity-of-quick-sort",{"title":394,"list":395,"isOpened":123},"Дебаггинг",[396],{"name":397,"path":398,"isActive":123},"Как диагностировать и исправить нежелательное изменение цвета фона по клику на кнопку, если исходный код сайта запутан и недоступен для прямого чтения?","/technical-interview/tasks/how-can-diagnose-and-fix-unwanted-background-color-changes-when-clicking-on-a-button-if-the-source-code-of-the-site-is-confusing-and-inaccessible-to-direct-reading",{"title":400,"list":401,"isOpened":123},"Компьютерные сети",[402,405,408,410,413,416,419,422,425,428,431,434,437,440,443,446,449,452,455,458],{"name":403,"path":404,"isActive":123},"Как браузер после ввода домена понимает, откуда брать сайт?","/technical-interview/tasks/how-does-the-browser-know-where-to-get-the-website-after-entering-the-domain",{"name":406,"path":407,"isActive":123},"Что такое DNS, как DNS находит нужный IP-адрес?","/technical-interview/tasks/what-is-dns-and-how-does-dns-find-the-correct-ip-address",{"name":135,"path":409,"isActive":123},"/technical-interview/tasks/how-does-a-domain-get-into-the-dns-mapping-table-domain-ip",{"name":411,"path":412,"isActive":123},"Как браузер решает, какое соединение ему открывать, TCP или UDP?","/technical-interview/tasks/how-does-a-browser-decide-whether-to-open-a-tcp-or-udp-connection",{"name":414,"path":415,"isActive":123},"Ключевые отличия TCP и UDP","/technical-interview/tasks/key-differences-between-tcp-and-udp",{"name":417,"path":418,"isActive":123},"\"TCP/IP\" - кем является TCP, а кем IP в данном случае?","/technical-interview/tasks/tcp-ip-who-is-tcp-and-who-is-ip-in-this-case",{"name":420,"path":421,"isActive":123},"Что такое HTTP и из чего состоит?","/technical-interview/tasks/what-is-http-and-what-does-it-consist-of",{"name":423,"path":424,"isActive":123},"Что такое заголовки в HTTP и зачем они нужны?","/technical-interview/tasks/what-are-http-headers-and-why-do-we-need-them",{"name":426,"path":427,"isActive":123},"Что такое параметры в HTTP?","/technical-interview/tasks/what-are-http-parameters",{"name":429,"path":430,"isActive":123},"Где находится HTML-код в структуре HTTP-ответа?","/technical-interview/tasks/where-is-the-html-code-located-in-the-http-response-structure",{"name":432,"path":433,"isActive":123},"Чем отличаются 1.0, 1.1, 2.0, 3.0 версии HTTP?","/technical-interview/tasks/what-are-the-differences-between-http-versions-1-0-1-1-2-0-and-3-0",{"name":435,"path":436,"isActive":123},"Пользователь авторизован на сайте. Как сервер узнает об этом с последующими другими заходами, что «я – авторизованный пользователь»?","/technical-interview/tasks/the-user-is-logged-in-on-the-website-how-does-the-server-know-that-i-am-an-authorized-user-when-the-user-logs-in-again",{"name":438,"path":439,"isActive":123},"Что такое cookie?","/technical-interview/tasks/what-is-a-cookie",{"name":441,"path":442,"isActive":123},"Кто является инициатором записи cookie в браузере?","/technical-interview/tasks/who-initiates-the-cookie-recording-in-the-browser",{"name":444,"path":445,"isActive":123},"Есть ли возможность с клиента (с браузера) управлять cookie?","/technical-interview/tasks/is-it-possible-to-manage-cookies-from-the-client-browser",{"name":447,"path":448,"isActive":123},"Верно ли утверждение, что злоумышленник, контролирующий роутер и прослушивающий трафик, может получить логины и пароли от сайтов, на которые заходит клиент?","/technical-interview/tasks/is-it-true-that-an-attacker-who-controls-a-router-and-listens-to-traffic-can-obtain-logins-and-passwords-from-websites-that-a-client-visits",{"name":450,"path":451,"isActive":123},"Всё, что идет по HTTPS – оно защищено?","/technical-interview/tasks/is-everything-that-goes-through-https-secure",{"name":453,"path":454,"isActive":123},"Все данные зашифрованы, используется https. Хакер взламывает dns и делает подмену одного ip на другой, на фишинговый сайт. В этом случае, злоумышленник может получить данные (логин \\ пароль)?","/technical-interview/tasks/all-data-is-encrypted-https-is-used-let-s-assume-a-hacker-hacks-the-dns-and-makes-a-substitution-of-one-ip-for-another-a-phishing-site",{"name":456,"path":457,"isActive":123},"Есть веб-приложение. Помимо HTTP, какие протоколы того же уровня (Application Layer) можно дополнительно использовать в веб-приложении в браузере?","/technical-interview/tasks/there-is-a-web-application-in-addition-to-http-what-other-protocols-of-the-same-level-application-layer-can-be-used-in-the-web-application-in-browser",{"name":459,"path":460,"isActive":123},"Каким способом может выполняться авторизация пользователя на сайте?","/technical-interview/tasks/how-can-a-user-be-authorized-on-a-website",{"title":462,"list":463,"isOpened":123},"Отрисовка в браузере",[464,467,470,473,476,479],{"name":465,"path":466,"isActive":123},"Что происходит, когда HTTP прислал HTML? Что браузер дальше делает c HTML с учетом того, что она валидная?","/technical-interview/tasks/what-happens-when-http-sends-html-what-does-the-browser-do-with-this-html-given-that-it-is-valid",{"name":468,"path":469,"isActive":123},"Как браузер парсит JavaScript и изображения при рендеринге?","/technical-interview/tasks/how-the-browser-parses-javascript-and-images-when-rendering",{"name":471,"path":472,"isActive":123},"Что в браузере блокирует рендеринг страницы?","/technical-interview/tasks/what-is-blocking-the-page-rendering-in-the-browser",{"name":474,"path":475,"isActive":123},"Что такое DOM в браузере? Что такое CSSOM?","/technical-interview/tasks/what-is-dom-in-a-browser-what-is-cssom",{"name":477,"path":478,"isActive":123},"Что является узлами в DOM?","/technical-interview/tasks/what-are-nodes-in-the-dom",{"name":480,"path":481,"isActive":123},"Из чего состоит CSSOM?","/technical-interview/tasks/what-does-cssom-consist-of",{"title":483,"list":484,"isOpened":123},"Ревью кода",[485],{"name":486,"path":487,"isActive":123},"По каким характеристикам, ревьюер понимает, что данный код - хороший, а этот код - плохой?","/technical-interview/tasks/how-does-a-reviewer-know-which-code-is-good-and-which-code-is-bad",{"title":489,"list":490,"isOpened":123},"Теория вероятности",[491,494,497],{"name":492,"path":493,"isActive":123},"В комнате три человека. Какова вероятность того, что хотя бы двое из них одного пола? То есть два и более.","/technical-interview/tasks/there-are-three-people-in-the-room-what-is-the-probability-that-at-least-two-of-them-are-of-the-same-sex-that-is-two-or-more",{"name":495,"path":496,"isActive":123},"Есть монета. Ее подбрасывают пять раз подряд. Каждый раз записывается, что выпало - орел или решка. Сколько разных последовательностей орлов и решек может при этом получиться?","/technical-interview/tasks/there-is-a-coin-it-is-tossed-five-times-in-a-row-each-time-it-is-recorded-whether-it-lands-on-heads-or-tails-how-many-different-sequences-of-heads-and-tails-can-be-obtained",{"name":498,"path":499,"isActive":123},"Как гарантированно найти лёгкую фальшивую монету среди 8 за минимальное число взвешиваний на чашечных весах?","/technical-interview/tasks/how-can-you-guarantee-to-find-an-easy-fake-coin-among-8-in-the-minimum-number-of-weighings-on-a-balance-scale",{"slugs":501},[502,505,507,509,511,514,517,519,521,523,525,527,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,611,613,615,617,619,621,623,625,627,629,631,633,635,637,639,641,643,645,647,649,651,653,655,657,659,661,663,665,667,669,671,673,675,677,679,681,683,685,687,689,691,693,695,697,699,701,703,705,707,709,711,712,714,716,718,720],{"name":503,"value":504},"Теоретические задания","theoretical-tasks",{"name":259,"value":506},"what-this-code-will-return-typeof-function",{"name":158,"value":508},"where-to-begin",{"name":226,"value":510},"why-is-it-dangerous-to-write-directly-to-the-prototypes-of-basic-types",{"name":512,"value":513},"Backend","backend",{"name":515,"value":516},"Frontend","frontend",{"name":223,"value":518},"prototype-what-logical-values-will-be-received-in-console-log",{"name":340,"value":520},"odd-numbers-should-be-sorted-in-ascending-order-and-even-numbers-should-remain-in-their-original-positions",{"name":331,"value":522},"find-non-repeating-numbers-in-an-array",{"name":304,"value":524},"arr-push-0-will-affect-the-array-in-the-same-way-as-if-we-performed",{"name":310,"value":526},"the-string-one-two-three-four-five-is-given-it-is-necessary-to-make-a-nested-object-out-of-the-string",{"name":528,"value":529},"Реализовать функцию, похоже как в Jquery","implement-a-function-similar-to-jquery",{"name":316,"value":531},"for-each-nested-object-you-need-to-add-the-level-property-which-is-equal-to-a-number-the-nesting-number",{"name":232,"value":533},"what-value-will-the-console-output-with-object-property",{"name":235,"value":535},"what-will-be-displayed-in-console-log-arr-0-arr-0",{"name":307,"value":537},"returns-an-array-from-1-to-n-replacing-numbers-that-are-multiples-of-3-with-fizz-numbers-that-are-multiples-of-5-with-buzz-and-numbers-that-are-multiples-of-both-3-and-5-with-fizzbuzz",{"name":337,"value":539},"checks-whether-two-strings-are-anagrams-of-each-other",{"name":343,"value":541},"determines-whether-a-word-is-a-palindrome",{"name":322,"value":543},"there-is-an-array-containing-objects-with-dates-that-need-to-be-sorted-by-date",{"name":349,"value":545},"implement-a-function-that-accepts-arguments-1-b-1c-and-the-return-string-1-b-1c",{"name":313,"value":547},"given-a-tree-nested-object-it-is-necessary-to-find-the-sum-of-all-vertices",{"name":319,"value":549},"for-each-branch-of-the-tree-write-down-the-nesting-number-of-this-branch",{"name":325,"value":551},"there-are-words-in-the-array-it-is-necessary-to-determine-whether-they-consist-of-the-same-letters",{"name":358,"value":553},"the-numbers-from-1-to-100-are-in-the-array-they-are-randomly-mixed-but-it-lacks-one-number-from-this-sequence-it-is-necessary-to-find-him",{"name":328,"value":555},"there-is-a-string-consisting-of-different-brackets-it-is-necessary-to-check-whether-all-are-closed",{"name":334,"value":557},"write-a-function-that-will-make-an-object-out-of-an-array",{"name":238,"value":559},"what-will-console-log-output-as-a-result-of-executing-the-while-loop",{"name":241,"value":561},"there-is-a-function-and-an-object-write-all-the-ways-you-know-to-output-the-value-of-x-from-an-object-in-the-console-using-the-function",{"name":253,"value":563},"what-will-the-console-display-if-a-property-is-assigned-to-an-array-using-a-negative-string-index",{"name":256,"value":565},"what-will-the-console-output-if-an-array-element-is-deleted-using-the-delete-operator",{"name":355,"value":567},"unifying-values-in-an-array",{"name":346,"value":569},"flattening-the-array",{"name":244,"value":571},"what-will-the-book-get-upper-name-method-return",{"name":352,"value":573},"string-compression",{"name":250,"value":575},"what-will-the-console-display-if-a-property-is-assigned-to-an-array-using-a-positive-string-index",{"name":262,"value":577},"what-will-happen-when-an-object-is-passed-as-an-argument-to-a-function-and-the-code-is-executed",{"name":403,"value":579},"how-does-the-browser-know-where-to-get-the-website-after-entering-the-domain",{"name":135,"value":581},"how-does-a-domain-get-into-the-dns-mapping-table-domain-ip",{"name":411,"value":583},"how-does-a-browser-decide-whether-to-open-a-tcp-or-udp-connection",{"name":414,"value":585},"key-differences-between-tcp-and-udp",{"name":417,"value":587},"tcp-ip-who-is-tcp-and-who-is-ip-in-this-case",{"name":420,"value":589},"what-is-http-and-what-does-it-consist-of",{"name":423,"value":591},"what-are-http-headers-and-why-do-we-need-them",{"name":426,"value":593},"what-are-http-parameters",{"name":429,"value":595},"where-is-the-html-code-located-in-the-http-response-structure",{"name":217,"value":597},"what-is-html",{"name":432,"value":599},"what-are-the-differences-between-http-versions-1-0-1-1-2-0-and-3-0",{"name":435,"value":601},"the-user-is-logged-in-on-the-website-how-does-the-server-know-that-i-am-an-authorized-user-when-the-user-logs-in-again",{"name":438,"value":603},"what-is-a-cookie",{"name":441,"value":605},"who-initiates-the-cookie-recording-in-the-browser",{"name":444,"value":607},"is-it-possible-to-manage-cookies-from-the-client-browser",{"name":609,"value":610},"Лайвкодинг","livecoding",{"name":229,"value":612},"what-will-the-following-code-return-object-create-null-has-own-property-to-string",{"name":450,"value":614},"is-everything-that-goes-through-https-secure",{"name":453,"value":616},"all-data-is-encrypted-https-is-used-let-s-assume-a-hacker-hacks-the-dns-and-makes-a-substitution-of-one-ip-for-another-a-phishing-site",{"name":456,"value":618},"there-is-a-web-application-in-addition-to-http-what-other-protocols-of-the-same-level-application-layer-can-be-used-in-the-web-application-in-browser",{"name":468,"value":620},"how-the-browser-parses-javascript-and-images-when-rendering",{"name":465,"value":622},"what-happens-when-http-sends-html-what-does-the-browser-do-with-this-html-given-that-it-is-valid",{"name":471,"value":624},"what-is-blocking-the-page-rendering-in-the-browser",{"name":474,"value":626},"what-is-dom-in-a-browser-what-is-cssom",{"name":477,"value":628},"what-are-nodes-in-the-dom",{"name":480,"value":630},"what-does-cssom-consist-of",{"name":178,"value":632},"the-html-code-is-given-what-will-be-the-color-of-the-some-dummy-text",{"name":181,"value":634},"there-is-a-template-for-html-and-css-code-what-color-will-the-text-thus-constant-have",{"name":184,"value":636},"there-is-a-template-for-embedded-html-code-what-will-be-the-color-of-the-one-more-dummy-text",{"name":187,"value":638},"there-is-a-template-for-embedded-html-code-will-there-be-a-display-does-bodys-block-affect-span",{"name":190,"value":640},"there-is-an-html-code-will-font-weight-affect-span",{"name":193,"value":642},"what-are-the-differences-between-flexbox-and-grid",{"name":196,"value":644},"do-flexbox-and-grid-replace-each-other",{"name":199,"value":646},"there-are-css-and-js-animations-what-is-the-difference-between-them-and-which-is-faster-and-more-convenient",{"name":162,"value":648},"tasks",{"name":265,"value":650},"what-are-the-ways-to-declare-a-function-in-javascript",{"name":268,"value":652},"what-is-this-in-javascript",{"name":271,"value":654},"what-is-an-event-loop-and-how-does-it-work",{"name":274,"value":656},"what-happens-if-you-call-typeof-on-an-undeclared-variable",{"name":277,"value":658},"what-does-the-typeof-operator-show-in-javascript",{"name":280,"value":660},"what-types-of-data-exist-in-javascript",{"name":283,"value":662},"what-is-the-best-structure-to-use-for-storing-an-ordered-list-of-strings-in-javascript",{"name":286,"value":664},"what-will-typeof-return-for-an-array",{"name":289,"value":666},"why-does-the-typeof-operator-applied-to-an-array-return-an-object",{"name":292,"value":668},"if-you-need-to-store-a-list-of-unique-strings-which-data-structure-should-i-choose",{"name":295,"value":670},"what-does-typeof-return-for-new-set-in-javascript",{"name":364,"value":672},"what-is-react-used-for-and-what-problems-does-it-solve",{"name":370,"value":674},"if-you-remove-the-vdom-fiber-in-react-and-manually-change-the-dom-isn-t-that-optimal",{"name":373,"value":676},"there-is-a-block-of-code-what-changes-in-the-real-dom-after-clicking-the-button",{"name":376,"value":678},"there-is-a-code-in-which-there-is-a-list-and-a-button-what-will-change-in-the-real-dom-after-clicking-on-the-button",{"name":379,"value":680},"why-do-we-need-redux-mobx-effector-why-do-we-need-a-state-manager-what-problems-does-it-solve",{"name":397,"value":682},"how-can-diagnose-and-fix-unwanted-background-color-changes-when-clicking-on-a-button-if-the-source-code-of-the-site-is-confusing-and-inaccessible-to-direct-reading",{"name":205,"value":684},"developed-it-committed-it-and-launched-it-it-turned-out-that-i-had-pushed-it-to-the-wrong-branch-or-rather-the-commit-was-in-the-wrong-branch-what-actions",{"name":208,"value":686},"git-has-several-options-for-merging-branches-which-ones-how-are-they-different",{"name":211,"value":688},"what-are-the-branching-strategies-for-the-team-what-is-it",{"name":486,"value":690},"how-does-a-reviewer-know-which-code-is-good-and-which-code-is-bad",{"name":169,"value":692},"here-is-a-fragment-of-a-bash-script-cd-mkdir-foo-what-is-happening-in-this-script",{"name":172,"value":694},"here-is-a-fragment-of-a-bash-script-target-ps-af-grep-1-head-n-1",{"name":388,"value":696},"what-is-algorithmic-complexity",{"name":391,"value":698},"what-is-the-algorithmic-complexity-of-quick-sort",{"name":298,"value":700},"why-do-two-objects-with-the-same-content-return-false-when-compared-in-javascript",{"name":459,"value":702},"how-can-a-user-be-authorized-on-a-website",{"name":301,"value":704},"what-is-the-difference-between-micro-and-macro-tasks-in-javascript",{"name":492,"value":706},"there-are-three-people-in-the-room-what-is-the-probability-that-at-least-two-of-them-are-of-the-same-sex-that-is-two-or-more",{"name":495,"value":708},"there-is-a-coin-it-is-tossed-five-times-in-a-row-each-time-it-is-recorded-whether-it-lands-on-heads-or-tails-how-many-different-sequences-of-heads-and-tails-can-be-obtained",{"name":498,"value":710},"how-can-you-guarantee-to-find-an-easy-fake-coin-among-8-in-the-minimum-number-of-weighings-on-a-balance-scale",{"name":152,"value":153},{"name":447,"value":713},"is-it-true-that-an-attacker-who-controls-a-router-and-listens-to-traffic-can-obtain-logins-and-passwords-from-websites-that-a-client-visits",{"name":406,"value":715},"what-is-dns-and-how-does-dns-find-the-correct-ip-address",{"name":247,"value":717},"variables-are-declared-as-follows-specify-the-correct-statement",{"name":367,"value":719},"what-is-the-underlying-mechanism-for-optimizing-dom-updates-in-react",{"name":382,"value":721},"what-prevents-you-from-organizing-a-centralized-state-without-a-state-manager-if-you-organize-the-state-using-react-context-and-state-mechanisms-what-is-the-problem-what-do-state-managers-add",{"cooperation":723,"copyright":726,"reportError":727,"socialNetwork":729},{"link":724,"title":725},"https://t.me/baurinanton","Сотрудничество","© “GOOD WEB JOB!”",{"label":728,"link":724},"Сообщить об ошибке",{"label":730,"socialNetworkList":731},"Мы в соцсетях:",[732,735,738],{"icon":19,"link":733,"title":734},"https://max.ru/u/f9LHodD0cOKMaukdnnahTeL5pwvjrPfUaZ4S8_1rsNy9I9qsmc9Ar3kP_y8","Max",{"icon":736,"link":724,"title":737},"ic:baseline-telegram","Telegram",{"icon":739,"link":740,"title":741},"ri:vk-fill","https://vk.com/baurinanton","VK",{"data":743,"body":744},{},{"type":745,"children":746},"root",[747],{"type":748,"tag":749,"props":750,"children":751},"element","p",{},[752],{"type":753,"value":135},"text",{"data":755,"body":756},{},{"type":745,"children":757},[758],{"type":748,"tag":749,"props":759,"children":760},{},[761],{"type":753,"value":122},{"data":763,"body":764},{},{"type":745,"children":765},[766],{"type":748,"tag":749,"props":767,"children":768},{},[769],{"type":753,"value":126},{"data":771,"body":772},{},{"type":745,"children":773},[774],{"type":748,"tag":749,"props":775,"children":776},{},[777],{"type":753,"value":129},{"data":779,"body":780},{},{"type":745,"children":781},[782],{"type":748,"tag":749,"props":783,"children":784},{},[785],{"type":753,"value":132},{"data":787,"body":788},{},{"type":745,"children":789},[790,795],{"type":748,"tag":749,"props":791,"children":792},{},[793],{"type":753,"value":794},"Для ответа на вопрос «как домен попадает в DNS в соответствие домен–IP» достаточно удерживать три слоя:",{"type":748,"tag":796,"props":797,"children":798},"ol",{},[799,805,810],{"type":748,"tag":800,"props":801,"children":802},"li",{},[803],{"type":753,"value":804},"Делегирование: NS (и иногда glue) в родительской зоне указывает, где искать зону.",{"type":748,"tag":800,"props":806,"children":807},{},[808],{"type":753,"value":809},"Данные зоны: A/AAAA внутри авторитетной зоны задают «имя → IP».",{"type":748,"tag":800,"props":811,"children":812},{},[813],{"type":753,"value":814},"Доставка до пользователя: резолвер проходит root → TLD → authoritative и кэширует по TTL (включая отрицательный кэш).",{"data":816,"body":817},{},{"type":745,"children":818},[819],{"type":748,"tag":749,"props":820,"children":821},{},[822],{"type":753,"value":823},"Правильный ответ: 2 - Домен попадает в DNS как «домен → IP» тогда, когда в авторитетной зоне домена создается ресурсная запись типа A/AAAA, а в родительской зоне настраивается делегирование на авторитетные DNS-серверы (NS, при необходимости glue). Далее резолверы находят авторитетный сервер по цепочке root → TLD → зона домена и кэшируют ответ по TTL.",{"data":825,"body":826},{},{"type":745,"children":827},[828],{"type":748,"tag":749,"props":829,"children":830},{},[831,833,837,839,842],{"type":753,"value":832},"DNS не является одной общей таблицей на весь интернет; это распределенная база, где данные хранятся в виде ресурсных записей (RR) внутри зон (zone), обслуживаемых авторитетными DNS‑серверами.",{"type":748,"tag":834,"props":835,"children":836},"br",{},[],{"type":753,"value":838},"\nСоответствие «домен → IP» обычно задается записями A (IPv4) и AAAA (IPv6).",{"type":748,"tag":834,"props":840,"children":841},{},[],{"type":753,"value":843},"\nРезолвер (resolver) — компонент на стороне клиента/провайдера DNS — получает ответы от DNS‑серверов и может кэшировать их, чтобы не ходить в сеть повторно при каждом запросе.",{"data":845,"body":846},{},{"type":745,"children":847},[848],{"type":748,"tag":749,"props":849,"children":850},{},[851],{"type":753,"value":852},"«Домен → IP» — это частный случай: в DNS могут храниться и другие типы данных (например, MX, TXT, CNAME), а «IP → домен» делается через PTR в специальных зонах обратного разрешения.",{"data":854,"body":855},{},{"type":745,"children":856},[857],{"type":748,"tag":749,"props":858,"children":859},{},[860,862,865,867,874,876,882,884,887],{"type":753,"value":861},"Чтобы резолвер нашел записи домена, сначала должны быть известны авторитетные серверы зоны домена.",{"type":748,"tag":834,"props":863,"children":864},{},[],{"type":753,"value":866},"\nДля этого в родительской зоне (например, в зоне TLD) публикуются NS‑записи делегирования, указывающие имена авторитетных DNS‑серверов дочерней зоны, а иногда добавляются «glue» адресные записи, чтобы разорвать циклическую зависимость при «внутридоменном» nameserver (например, ",{"type":748,"tag":868,"props":869,"children":871},"code",{"className":870},[],[872],{"type":753,"value":873},"ns1.example.com",{"type":753,"value":875}," для ",{"type":748,"tag":868,"props":877,"children":879},{"className":878},[],[880],{"type":753,"value":881},"example.com",{"type":753,"value":883},").",{"type":748,"tag":834,"props":885,"children":886},{},[],{"type":753,"value":888},"\nЛогика такова: родительская зона сообщает, какие NS обслуживают дочернюю зону, а при необходимости дополнительно сообщает IP этих NS (glue), чтобы резолвер смог связаться с ними сразу.",{"data":890,"body":891},{},{"type":745,"children":892},[893],{"type":748,"tag":749,"props":894,"children":895},{},[896],{"type":753,"value":33},{"data":898,"body":899},{},{"type":745,"children":900},[901],{"type":748,"tag":749,"props":902,"children":903},{},[904,906,909,911,917,919,925,926,932,933,936],{"type":753,"value":905},"После делегирования необходима зона домена на авторитетном DNS‑сервере (или у DNS‑провайдера), где хранится набор RR, описывающий данные этой зоны.",{"type":748,"tag":834,"props":907,"children":908},{},[],{"type":753,"value":910},"\nЗона включает как минимум SOA (начало зоны) и обычно NS, а записи «домен → IP» задаются A/AAAA для нужных имен (например, ",{"type":748,"tag":868,"props":912,"children":914},{"className":913},[],[915],{"type":753,"value":916},"@",{"type":753,"value":918},", ",{"type":748,"tag":868,"props":920,"children":922},{"className":921},[],[923],{"type":753,"value":924},"www",{"type":753,"value":918},{"type":748,"tag":868,"props":927,"children":929},{"className":928},[],[930],{"type":753,"value":931},"api",{"type":753,"value":883},{"type":748,"tag":834,"props":934,"children":935},{},[],{"type":753,"value":937},"\nTTL в каждой записи задает, как долго резолвер может кэшировать ответ, прежде чем снова обратиться к источнику данных.",{"data":939,"body":940},{},{"type":745,"children":941},[942],{"type":748,"tag":749,"props":943,"children":944},{},[945,947,950,952,955],{"type":753,"value":946},"Резолвер идет по иерархии DNS итеративно: получает направление от корня к TLD, затем к авторитетным серверам зоны домена, и уже там получает A/AAAA.",{"type":748,"tag":834,"props":948,"children":949},{},[],{"type":753,"value":951},"\nАвторитетные серверы отвечают на запросы, используя данные своей зоны, и возвращают «финальный» ответ для конкретного имени.",{"type":748,"tag":834,"props":953,"children":954},{},[],{"type":753,"value":956},"\nРезультат кэшируется на время TTL, поэтому «обновление DNS» на практике проявляется как ожидание истечения TTL в кэшах.",{"data":958,"body":959},{},{"type":745,"children":960},[961],{"type":748,"tag":749,"props":962,"children":963},{},[964,966,969,971,974],{"type":753,"value":965},"Если имени или записи не существует, возвращается отрицательный ответ (например, NXDOMAIN), который тоже может кэшироваться.",{"type":748,"tag":834,"props":967,"children":968},{},[],{"type":753,"value":970},"\nУ отрицательного кэширования есть собственное время жизни, связанное с параметрами SOA, поэтому после добавления записи задержка иногда сохраняется до истечения отрицательного TTL.",{"type":748,"tag":834,"props":972,"children":973},{},[],{"type":753,"value":975},"\nИз-за этого ситуация «запись уже добавлена, но еще не находится» является типичной.",{"data":977,"body":978},{},{"type":745,"children":979},[980],{"type":748,"tag":749,"props":981,"children":982},{},[983],{"type":753,"value":57},{"data":985,"body":986},{},{"type":745,"children":987},[988,1000],{"type":748,"tag":989,"props":990,"children":994},"pre",{"className":991,"code":993,"language":753},[992],"language-text","Клиент → (stub resolver) → рекурсивный резолвер\n                         |\n                         | 1) запрос к root: \"где зона .tld?\"\n                         v\n                      root DNS\n                         |\n                         | referral NS для TLD\n                         v\n                       TLD DNS\n                         |\n                         | referral NS (+ glue при необходимости)\n                         v\n            авторитетные DNS домена (зона)\n                         |\n                         | ответ: A/AAAA для имени\n                         v\n                 резолвер кэширует по TTL\n                         |\n                         v\n                      клиент получает IP\n",[995],{"type":748,"tag":868,"props":996,"children":998},{"__ignoreMap":997},"",[999],{"type":753,"value":993},{"type":748,"tag":749,"props":1001,"children":1002},{},[1003],{"type":753,"value":1004},"Основные роли: резолвер извлекает данные и кэширует, а авторитетные серверы хранят зону и отдают записи.",{"data":1006,"body":1007},{},{"type":745,"children":1008},[1009],{"type":748,"tag":1010,"props":1011,"children":1012},"table",{},[1013,1037],{"type":748,"tag":1014,"props":1015,"children":1016},"thead",{},[1017],{"type":748,"tag":1018,"props":1019,"children":1020},"tr",{},[1021,1027,1032],{"type":748,"tag":1022,"props":1023,"children":1024},"th",{},[1025],{"type":753,"value":1026},"Уровень",{"type":748,"tag":1022,"props":1028,"children":1029},{},[1030],{"type":753,"value":1031},"Что хранится",{"type":748,"tag":1022,"props":1033,"children":1034},{},[1035],{"type":753,"value":1036},"Зачем нужно",{"type":748,"tag":1038,"props":1039,"children":1040},"tbody",{},[1041,1060,1078],{"type":748,"tag":1018,"props":1042,"children":1043},{},[1044,1050,1055],{"type":748,"tag":1045,"props":1046,"children":1047},"td",{},[1048],{"type":753,"value":1049},"Родительская зона (например, TLD)",{"type":748,"tag":1045,"props":1051,"children":1052},{},[1053],{"type":753,"value":1054},"NS делегирования дочерней зоны; иногда glue A/AAAA для nameserver",{"type":748,"tag":1045,"props":1056,"children":1057},{},[1058],{"type":753,"value":1059},"Чтобы указать резолверу, к каким авторитетным серверам идти дальше, и избежать циклов при nameserver «внутри домена»",{"type":748,"tag":1018,"props":1061,"children":1062},{},[1063,1068,1073],{"type":748,"tag":1045,"props":1064,"children":1065},{},[1066],{"type":753,"value":1067},"Зона домена (authoritative)",{"type":748,"tag":1045,"props":1069,"children":1070},{},[1071],{"type":753,"value":1072},"SOA, NS, A/AAAA, CNAME и т.д.",{"type":748,"tag":1045,"props":1074,"children":1075},{},[1076],{"type":753,"value":1077},"Здесь и находится фактическое «домен → IP» через A/AAAA",{"type":748,"tag":1018,"props":1079,"children":1080},{},[1081,1086,1091],{"type":748,"tag":1045,"props":1082,"children":1083},{},[1084],{"type":753,"value":1085},"Кэши резолверов",{"type":748,"tag":1045,"props":1087,"children":1088},{},[1089],{"type":753,"value":1090},"Копии ответов, отрицательные ответы",{"type":748,"tag":1045,"props":1092,"children":1093},{},[1094],{"type":753,"value":1095},"Ускорение работы; ответы действуют до истечения TTL",{"data":1097,"body":1098},{},{"type":745,"children":1099},[1100],{"type":748,"tag":1010,"props":1101,"children":1102},{},[1103,1124],{"type":748,"tag":1014,"props":1104,"children":1105},{},[1106],{"type":748,"tag":1018,"props":1107,"children":1108},{},[1109,1114,1119],{"type":748,"tag":1022,"props":1110,"children":1111},{},[1112],{"type":753,"value":1113},"Тип",{"type":748,"tag":1022,"props":1115,"children":1116},{},[1117],{"type":753,"value":1118},"Смысл",{"type":748,"tag":1022,"props":1120,"children":1121},{},[1122],{"type":753,"value":1123},"Пример назначения",{"type":748,"tag":1038,"props":1125,"children":1126},{},[1127,1149,1171,1195,1213],{"type":748,"tag":1018,"props":1128,"children":1129},{},[1130,1135,1140],{"type":748,"tag":1045,"props":1131,"children":1132},{},[1133],{"type":753,"value":1134},"A",{"type":748,"tag":1045,"props":1136,"children":1137},{},[1138],{"type":753,"value":1139},"IPv4 адрес хоста",{"type":748,"tag":1045,"props":1141,"children":1142},{},[1143],{"type":748,"tag":868,"props":1144,"children":1146},{"className":1145},[],[1147],{"type":753,"value":1148},"www.example.com → 203.0.113.10",{"type":748,"tag":1018,"props":1150,"children":1151},{},[1152,1157,1162],{"type":748,"tag":1045,"props":1153,"children":1154},{},[1155],{"type":753,"value":1156},"AAAA",{"type":748,"tag":1045,"props":1158,"children":1159},{},[1160],{"type":753,"value":1161},"IPv6 адрес хоста",{"type":748,"tag":1045,"props":1163,"children":1164},{},[1165],{"type":748,"tag":868,"props":1166,"children":1168},{"className":1167},[],[1169],{"type":753,"value":1170},"www.example.com → 2001:db8::10",{"type":748,"tag":1018,"props":1172,"children":1173},{},[1174,1179,1184],{"type":748,"tag":1045,"props":1175,"children":1176},{},[1177],{"type":753,"value":1178},"CNAME",{"type":748,"tag":1045,"props":1180,"children":1181},{},[1182],{"type":753,"value":1183},"Псевдоним на каноническое имя",{"type":748,"tag":1045,"props":1185,"children":1186},{},[1187,1193],{"type":748,"tag":868,"props":1188,"children":1190},{"className":1189},[],[1191],{"type":753,"value":1192},"www → site.hosting.net",{"type":753,"value":1194}," (потом уже A/AAAA у target)",{"type":748,"tag":1018,"props":1196,"children":1197},{},[1198,1203,1208],{"type":748,"tag":1045,"props":1199,"children":1200},{},[1201],{"type":753,"value":1202},"NS",{"type":748,"tag":1045,"props":1204,"children":1205},{},[1206],{"type":753,"value":1207},"Авторитетный nameserver зоны",{"type":748,"tag":1045,"props":1209,"children":1210},{},[1211],{"type":753,"value":1212},"Делегирование и обслуживание зоны",{"type":748,"tag":1018,"props":1214,"children":1215},{},[1216,1221,1226],{"type":748,"tag":1045,"props":1217,"children":1218},{},[1219],{"type":753,"value":1220},"SOA",{"type":748,"tag":1045,"props":1222,"children":1223},{},[1224],{"type":753,"value":1225},"«Старт» зоны и параметры",{"type":748,"tag":1045,"props":1227,"children":1228},{},[1229],{"type":753,"value":1230},"В т.ч. используется в отрицательном кэшировании",{"data":1232,"body":1233},{},{"type":745,"children":1234},[1235],{"type":748,"tag":989,"props":1236,"children":1239},{"className":1237,"code":1238,"language":753},[992],"$ORIGIN example.com.\n$TTL 3600\n\n@   IN  SOA ns1.example.com. hostmaster.example.com. (\n        2026022001  ; serial\n        3600        ; refresh\n        600         ; retry\n        1209600     ; expire\n        300         ; minimum (часто влияет на отрицательный TTL)\n)\n\n    IN  NS  ns1.example.com.\n    IN  NS  ns2.example.net.\n\n; glue обычно не здесь, а в родительской зоне (TLD), если ns1 внутри домена\n\n@   IN  A     203.0.113.10\nwww IN  A     203.0.113.10\napi IN  A     203.0.113.11\n\n@   IN  AAAA  2001:db8:100::10\nwww IN  AAAA  2001:db8:100::10\n\n; псевдоним\nblog IN CNAME www.example.com.\n",[1240],{"type":748,"tag":868,"props":1241,"children":1242},{"__ignoreMap":997},[1243],{"type":753,"value":1238},{"data":1245,"body":1246},{},{"type":745,"children":1247},[1248],{"type":748,"tag":749,"props":1249,"children":1250},{},[1251],{"type":753,"value":96},{"data":1253,"body":1254},{},{"type":745,"children":1255},[1256],{"type":748,"tag":749,"props":1257,"children":1258},{},[1259,1261,1267,1269,1272],{"type":753,"value":1260},"Команда для наблюдения шагов резолвинга: ",{"type":748,"tag":868,"props":1262,"children":1264},{"className":1263},[],[1265],{"type":753,"value":1266},"dig +trace www.example.com A",{"type":753,"value":1268},".",{"type":748,"tag":834,"props":1270,"children":1271},{},[],{"type":753,"value":1273},"\nПри таком запросе обычно видны переходы root → TLD → authoritative, после чего получается A‑ответ из зоны домена.",{"data":1275,"body":1276},{},{"type":745,"children":1277},[1278,1283],{"type":748,"tag":749,"props":1279,"children":1280},{},[1281],{"type":753,"value":1282},"DNS‑записи могут обновляться не только редактированием файлов зоны, но и механизмом DNS UPDATE: выполняется добавление/удаление записей в зоне через запрос обновления при наличии прав.",{"type":748,"tag":989,"props":1284,"children":1287},{"className":1285,"code":1286,"language":753},[992],"server 192.0.2.53\nzone example.com.\n\nupdate delete api.example.com. A\nupdate add    api.example.com. 300 A 203.0.113.99\n\nsend\n",[1288],{"type":748,"tag":868,"props":1289,"children":1290},{"__ignoreMap":997},[1291],{"type":753,"value":1286},{"data":1293,"body":1294},{},{"type":745,"children":1295},[1296],{"type":748,"tag":749,"props":1297,"children":1298},{},[1299],{"type":753,"value":113},{"data":1301,"body":1302},{},{"type":745,"children":1303},[1304],{"type":748,"tag":749,"props":1305,"children":1306},{},[1307],{"type":753,"value":116},1775735660375]