Когда я сделал что-то подобное, все соответствующие ресурсы имели номера идентификаторов в любом случае, поэтому я просто использовал это как основу. Тем не менее, это не слишком сложно распространить на не-номера.
Существует баланс количества хостов, которые вы используете, при слишком большом количестве служебных запросов хоста, превосходит преимущество нескольких имен хостов, поэтому снаружи вы, вероятно, будете иметь около 12, возможно, меньше.
Это само по себе означает, что простой хэш, скорее всего, будет разделен на заданный диапазон достаточно легко, без необходимости быть особенно умным.
Недостаточно путаницы в кодировании, поскольку ваше приложение имеет дело с IURI полностью (в этом случае обработка utf-8 уже является проблемой, с которой вы столкнулись), или нет, и в этом случае каждый символ в выведенная URI форма пути (то есть имя, используемое в фактическом URI) будет находиться в диапазоне ASCII.
Нет необходимости в криптографической защите или что-то в этом роде, так как это не угроза безопасности, чтобы угадать используемый сервер. Это будет не конец света, если одна или две страницы немного принесут немного одного сервера другому (случайность будет иметь место с совершенным, так или иначе).
Следовательно, просто пробегает символы в абсолютном пути URI для изображения (все после хоста с первого раза или вперед), добавляя их целочисленное значение друг к другу, а затем используйте по модулю эту часть Имя хоста.
Если вы хотите ограничить количество обработанных символов для проблем с производительностью, сделайте это с конца назад, так как это будет иметь наибольшее отклонение.
То, что «button-home.gif» похоже на «button-about.gif», не является проблемой, так как на самом деле они не очень похожи друг на друга, как это видно в результате процесса, подобного этому.
Если вы когда-либо увеличиваете количество используемых имен хостов, попробуйте сделать это как кратное предыдущему числу, так как это приведет к максимально возможному количеству ресурсов, сохраняющих свои старые URI.
Будьте осторожны с этими yahoo.com. Рекомендации в отношении электронных тегов в частности менее оптимальны и убедили людей в односерверных системах (где электронные теги никогда не имеют проблем здесь), чтобы отключить их. Теперь, убедившись, что они работают правильно, это хороший момент (и очень важный в вашем случае), но совет вводит в заблуждение. В этом отношении я подозреваю, что идея с несколькими именами хостов, которые вы здесь делаете, в будущем станет потерей нетто, хотя она по-прежнему остается чистой при текущих настройках браузеров по умолчанию. –