Пять критериев универсального принятия: «Хранение»
Универсальное принятие — состояние, когда все интернет-ориентированные приложения, устройства и системы правильно и единообразно принимают, проверяют, хранят, обрабатывают и отображают все корректные доменные имена и адреса электронной почты.
Существует 5 критериев реализации универсального принятия в программном обеспечении. В серии статей мы разберем каждый из них. В этой статье расскажем о критерии «Хранение». Читать другие статьи из цикла:
Что означает критерий «Хранение»
Хранение — это процесс сохранения доменного имени или адреса электронной почты в виде строки символов в базе данных или файле ПО (приложения или сервиса). А также процесс извлечения таких данных тем же самым ПО или другим приложением/сервисом.
Чтобы приложения/сервисы корректно извлекали почтовые адреса или доменные имена из базы данных, информация должна в ней правильно храниться:
- в форматах, которые соответствуют стандартам, то есть определенным RFC;
- в других форматах, которые можно преобразовать в формат, определенный RFC.
Кроме того, в приложениях и сервисах нужно правильно реализовать механизм поиска. Он должен работать так, чтобы поиск по U-метке интернационализированного домена находил и соответствующую ему A-метку. Например, поиск по доменному имени пример.рф должен также найти строку xn--e1afmkfd.xn--p1ai.
Рекомендации по хранению доменных имен
Есть несколько рекомендаций, без соблюдения которых данные не будут правильно храниться, а значит, внутренние службы ПО или внешние приложения и сервисы не смогут их извлечь:
- ПО должно поддерживать применимые форматы, определенные в стандарте Unicode.
- Доменное имя IDN в виде U-метки должно храниться в БД или в файлах в кодировке UTF-8. Некоторым системам может потребоваться поддержка UTF-16, но в большинстве случаев формат UTF-8 предпочтительнее. Форматов UTF-7 и UTF-32 следует избегать.
- Доменное имя может храниться в виде A-метки в дополнение к U-метке, если обе метки соответствуют друг другу.
- Средства базы данных не должны обрезать длинные домены верхнего уровня до 3-х символов.
Важно! Доменное имя IDN может храниться в виде A-метки в дополнение к U-метке, но при этом нужно проверять соответствие обеих меток при изменении одной из них. С точки зрения удобства хранить в файле или базе данных проще U-метки, потому что это облегчает поиск и сортировку.
Преобразование меток доменного имени может повлиять на взаимодействие с более старыми приложениями и сервисами, которые не поддерживают Unicode. Поэтому формат хранения зависит от конкретной ситуации.
Рекомендации по хранению адресов электронной почты
Для адресов электронной почты рекомендации похожие:
- Доменное имя в адресе электронной почты должно храниться в БД или в файлах в виде U-метки в кодировке UTF-8.
- Доменное имя в адресе электронной почты может храниться в виде A-метки в дополнение к U-метке, если обе метки соответствуют друг другу.
- Средства базы данных не должны обрезать домены верхнего уровня до 3-х символов.
- Локальная часть адреса электронной почты должна храниться в Unicode в кодировке UTF-8.
Как проводить тестирование критерия «Хранение»
Тестирование состоит из нескольких этапов проверки:
- проверки форматов хранимых данных;
- проверки формата хранения доменных имен;
- проверки формата хранения адресов электронной почты.
ПО удовлетворяет требованиям универсального принятия, если все его значимые функциональные элементы успешно проходят необходимые тесты:
- Тестирование форматов хранимых данных. Данные должны храниться в форматах, соответствующих интернет-стандартам (RFC) и стандарту Unicode. Или в других, которые позволяют выполнить преобразование в соответствующие форматы. Второй вариант менее желателен.
- Тест хранения доменных имен. Доменные имена должны храниться в БД или файлах в виде U-метки в кодировке UTF-8. Если в дополнение к U-метке хранится A-метка, должно проверяться соответствие обеих меток при изменении одной из них. Доменные имена верхнего уровня не должны обрезаться средствами базы данных до 3-х символов.
- Тест хранения адресов электронной почты. Локальная часть адреса электронной почты должна храниться в Unicode в кодировке UTF-8. Доменное имя в адресе электронной почты должно храниться в виде U-метки в кодировке UTF-8. Если в дополнение к U-метке хранится A-метка, должно проверяться соответствие обеих меток при изменении одной из них. Доменные имена верхнего уровня не должны обрезаться средствами базы данных до 3-х символов.
Такое ПО считается полностью готовым к универсальному принятию в части реализации критерия «Хранение».