Пять критериев универсального принятия: «Хранение»

Универсальное принятие — состояние, когда все интернет-ориентированные приложения, устройства и системы правильно и единообразно принимают, проверяют, хранят, обрабатывают и отображают все корректные доменные имена и адреса электронной почты.

Существует 5 критериев реализации универсального принятия в программном обеспечении. В серии статей мы разберем каждый из них. В этой статье расскажем о критерии «Хранение». Читать другие статьи из цикла:

Что означает критерий «Хранение»

Хранение — это процесс сохранения доменного имени или адреса электронной почты в виде строки символов в базе данных или файле ПО (приложения или сервиса). А также процесс извлечения таких данных тем же самым ПО или другим приложением/сервисом.
Чтобы приложения/сервисы корректно извлекали почтовые адреса или доменные имена из базы данных, информация должна в ней правильно храниться:

  1. в форматах, которые соответствуют стандартам, то есть определенным RFC;
  2. в других форматах, которые можно преобразовать в формат, определенный RFC.

Кроме того, в приложениях и сервисах нужно правильно реализовать механизм поиска. Он должен работать так, чтобы поиск по U-метке интернационализированного домена находил и соответствующую ему A-метку. Например, поиск по доменному имени пример.рф должен также найти строку xn--e1afmkfd.xn--p1ai.

Рекомендации по хранению доменных имен

Есть несколько рекомендаций, без соблюдения которых данные не будут правильно храниться, а значит, внутренние службы ПО или внешние приложения и сервисы не смогут их извлечь:

  1. ПО должно поддерживать применимые форматы, определенные в стандарте Unicode.
  2. Доменное имя IDN в виде U-метки должно храниться в БД или в файлах в кодировке UTF-8. Некоторым системам может потребоваться поддержка UTF-16, но в большинстве случаев формат UTF-8 предпочтительнее. Форматов UTF-7 и UTF-32 следует избегать.
  3. Доменное имя может храниться в виде A-метки в дополнение к U-метке, если обе метки соответствуют друг другу.
  4. Средства базы данных не должны обрезать длинные домены верхнего уровня до 3-х символов.

Важно! Доменное имя IDN может храниться в виде A-метки в дополнение к U-метке, но при этом нужно проверять соответствие обеих меток при изменении одной из них. С точки зрения удобства хранить в файле или базе данных проще U-метки, потому что это облегчает поиск и сортировку.
Преобразование меток доменного имени может повлиять на взаимодействие с более старыми приложениями и сервисами, которые не поддерживают Unicode. Поэтому формат хранения зависит от конкретной ситуации.

Рекомендации по хранению адресов электронной почты

Для адресов электронной почты рекомендации похожие:

  1. Доменное имя в адресе электронной почты должно храниться в БД или в файлах в виде U-метки в кодировке UTF-8.
  2. Доменное имя в адресе электронной почты может храниться в виде A-метки в дополнение к U-метке, если обе метки соответствуют друг другу.
  3. Средства базы данных не должны обрезать домены верхнего уровня до 3-х символов.
  4. Локальная часть адреса электронной почты должна храниться в Unicode в кодировке UTF-8.

Как проводить тестирование критерия «Хранение»

Тестирование состоит из нескольких этапов проверки:

  1. проверки форматов хранимых данных;
  2. проверки формата хранения доменных имен;
  3. проверки формата хранения адресов электронной почты.

ПО удовлетворяет требованиям универсального принятия, если все его значимые функциональные элементы успешно проходят необходимые тесты:

  1. Тестирование форматов хранимых данных. Данные должны храниться в форматах, соответствующих интернет-стандартам (RFC) и стандарту Unicode. Или в других, которые позволяют выполнить преобразование в соответствующие форматы. Второй вариант менее желателен.
  2. Тест хранения доменных имен. Доменные имена должны храниться в БД или файлах в виде U-метки в кодировке UTF-8. Если в дополнение к U-метке хранится A-метка, должно проверяться соответствие обеих меток при изменении одной из них. Доменные имена верхнего уровня не должны обрезаться средствами базы данных до 3-х символов.
  3. Тест хранения адресов электронной почты. Локальная часть адреса электронной почты должна храниться в Unicode в кодировке UTF-8. Доменное имя в адресе электронной почты должно храниться в виде U-метки в кодировке UTF-8. Если в дополнение к U-метке хранится A-метка, должно проверяться соответствие обеих меток при изменении одной из них. Доменные имена верхнего уровня не должны обрезаться средствами базы данных до 3-х символов.

Такое ПО считается полностью готовым к универсальному принятию в части реализации критерия «Хранение».