Призначення Punycode у міжнародних доменних іменах
Система доменних імен (DNS) історично створювалася для роботи виключно з обмеженим набором символів ASCII, що включає латинські літери, цифри та дефіс. З розвитком інтернету виникла потреба використовувати у веб-адресах символи національних алфавітів, такі як кирилиця, умлаути (наприклад, ü), китайські ієрогліфи (例) або символи деванагарі (भारत). Для вирішення цієї проблеми було розроблено технологію інтернаціоналізованих доменних імен (IDN).
Punycode є стандартизованим методом кодування, який трансформує послідовності символів Unicode в ASCII-сумісний формат. Це дозволяє існуючій інфраструктурі DNS коректно обробляти, маршрутизувати та розпізнавати інтернаціоналізовані домени без необхідності змінювати базові протоколи мережі. Таким чином, Punycode відіграє важливу роль у забезпеченні веб-доступності та глобального використання інтернету, дозволяючи людям у всьому світі використовувати доменні імена рідними мовами.
Структура міток Punycode та технічні аспекти
Кожен інтернаціоналізований сегмент доменного імені (названий міткою або частиною домену), який містить не-ASCII символи, після перетворення в Punycode отримує спеціальний префікс xn--. Цей префікс служить індикатором для систем обробки доменів, вказуючи на те, що наступна частина мітки є закодованим представленням Unicode-символів.
Наприклад, доменне ім'я bücher.example складається з двох частин (міток). Частина example містить лише символи ASCII і залишається незмінною. Частина bücher містить символ ü і перетворюється на ASCII-сумісну мітку xn--bcher-kva. Повне доменне ім'я в кодуванні Punycode записується як xn--bcher-kva.example.
Процес перетворення працює в обох напрямках:
- З Unicode в Punycode: вихідний текст із національними символами трансформується в ASCII-сумісний рядок, що починається з
xn--. - З Punycode в Unicode: рядок з префіксом
xn--декодується назад у вихідне представлення з символами національних алфавітів.
Правила валідації та обмеження доменних імен
Для успішного перетворення доменне ім'я має відповідати суворим технічним правилам структури хостів. Існує чітка різниця між повним URL (веб-адресою) та безпосередньо ім'ям хоста або доменним іменем.
При використанні конвертера діють такі обмеження щодо вхідних даних:
- Не допускається використання протоколів (наприклад,
https://), шляхів, рядків запитів або фрагментів (наприклад, символу#та параметрів після нього). - Вхідні дані не повинні містити пробілів.
- Не допускаються порожні частини домену (суміжні точки без символів між ними).
- Частини домену не можуть починатися або закінчуватися дефісом.
- Довжина окремих частин домену після перетворення не повинна перевищувати встановлені технічні ліміти.
- Загальна довжина вхідного тексту обмежена 10 000 символів.
Інструмент підтримує збереження однієї кінцевої точки в доменному імені, якщо вона присутня у вхідних даних.
Робота з інтерфейсом інструменту
Конвертер виконує перетворення миттєво безпосередньо під час введення тексту. За замовчуванням встановлено напрямок перетворення З Unicode в Punycode. При зміні напрямку перетворення за допомогою елемента керування Напрямок перетворення автоматично оновлюється плейсхолдер у полі введення.
Користувачу доступні такі елементи інтерфейсу та функції:
- Поля введення та виведення: Домен (вхідне поле) та Результат (вихідне поле).
- Кнопки керування: Приклад (для завантаження тестового домену), Очистити (для видалення тексту) та Використати результат (для перенесення вихідних даних у поле введення).
- Статистичні показники: під полями відображаються Вхідні дані (кількість символів у вхідному рядку), Вихідні дані (кількість символів у результаті) та Частини домену (кількість міток у структурі домену).
Під час роботи інструмент виводить відповідні текстові повідомлення про стан процесу:
- При першому відкритті або після очищення: "Готово. Вставте домен для перетворення."
- Під час обробки: "Перетворення..."
- Після успішного завершення: "Перетворено."
- Якщо спробувати виконати дію без тексту: "Спочатку вставте домен."
- При натисканні кнопки очищення: "Очищено."
- При завантаженні тестового домену: "Приклад завантажено."
- При перенесенні результату: "Результат перенесено в поле введення."
Якщо вхідні дані не відповідають правилам, виводяться помилки:
- При некоректному форматі: "Це некоректне доменне ім'я. Використовуйте ім'я хоста без протоколу, шляху чи пробілів."
- При перевищенні ліміту символів: "Вхідні дані занадто довгі для цього інструменту. Обмеження становить
{max}символів." - При інших помилках кодування: "Не вдалося перетворити цей домен."
Конфіденційність та обробка даних
Обробка та перетворення доменних імен відбуваються локально у вашому браузері. Введений текст домену не завантажується на сервери BroBroGo, що забезпечує конфіденційність процесу обробки даних.
Поширені запитання
Для чого потрібен Punycode?
Punycode дозволяє представляти доменні імена з символами національних алфавітів (такими як ü, 例 або भारत) у вигляді ASCII-рядків, що починаються з xn--.
Чи потрібно вставляти повну URL-адресу?
Використовуйте лише ім'я хоста або домен, наприклад bücher.example або xn--bcher-kva.example. Не додавайте https://, шляхи, рядки запитів та фрагменти.
Чому мій домен було відхилено?
Дійсне ім'я хоста не може містити пробілів, порожніх частин, дефісів на початку чи в кінці частин імені, або частин, які є занадто довгими після перетворення.