Pull to refresh

Comments 8

Спасибо за перевод. Согласно протоколу получается поддоменное имя не может быть более 255 символов. Если послать имя с большей длиной — DNS сломается?
Вроде даже в переводе сказано, что сообщение можно разбить на части.
Хотя да, получается что один лейбл может максимум иметь 255 символов…
И я про то же, слово this_is_an_example_of_the_label_which_has_more_then_two_handreds_and_fifty_five_symbols_but_i_suppose_you_can_not_register_a_domain_that_has_the_sublabel_with_this_long_long_name_where_are_more_then_two_handreds_and_fifty_five_symbols_but_i_am_not_sure_if_this_name_has_more_then_two_handreds_and_fifty_five_symbols_if_you_can_please_chack_the_length_of_this_labal_title_thank_you_very_much_my_friend
не разобьешь на два
400…
Мне кажется, что всё же есть там какой-то способ по разбиению этих слов при достижении «порога».

p.s. И не chack, а check)
Согласно RFC1035 — лейбл не более 63 октетов, а само DNS имя — 255.

Видел реализации, где валидация DNS имени валидируется по следующему принципу:
(63 letters).(63 letters).(63 letters).(62 letters)
Вы не посылаете информацию, а опрашиваете существующие домены поэтому в природе просто не будет такого домена и вы ничего не сломаете. И вы не совсем правы — 255 символов это максимальная длинна вообще на весь FQDN домен целиком. А метки (каждый отрезок разделенный точками) ограничен по 63 символа.
QNAME не до конца объяснили. Каждая запись и запроса и ответа начинается с QNAME. Максимальная длина QNAME <= 255 ради простоты реализации. Каждая метка QNAME может быть именем или ссылкой. Если первые 2 бита длины метки равны нулю, то последующие 6 бит указывают на длину имени метки, то есть длина <= 63. Если оба первых бита равны 1, то последующие 14 бит равны адресу следующей метки. То есть не обязательно будет \xC0\x0C. Где то в дополнительный записях может быть и QNAME \x03ns1\xC0\x0C(n1.example.com.) или \x03ns1\x02ex\xC0\x13(ns1.ex.com.). Если реализовать парсер ссылок не думая, то можно и зависнуть от неправильным пакета или даже выжрать всю доступную память. Возможно по этой причине число меток должно быть менее 127.
Статья интересная, но не путайте начинающих — habrahabr.ru/post/346098 — вот это URL,
а то что у Вас упоминается по тексту как URL, называется hostname.
Sign up to leave a comment.

Articles