Лучшие практики - это сложная вещь, многие варианты, которые вы хотите сделать, зависят от вашей ситуации.
Сегодня хороший способ справиться с этим - загрузить изображения на сервер, такой как AmazonS3 вместо того, чтобы хранить их в вашей базе данных.Amazon S3 имеет API, который вы можете программировать, поэтому приложение, которое вы уже написали и хранит изображения в базе данных, может быть настроено для загрузки их в Amazon S3.Затем вы сохраните URL-адрес изображения в вашей базе данных.
Это решит ряд проблем.
1. Изображения, хранящиеся в Amazon S3, могут быть выставлены на Amazon CloudFront, который является CDN и поможетВы можете направить данные изображения к вашим конечным пользователям по быстрому маршруту через Интернет.2. Вы можете применить заголовки expires к этим изображениям, чтобы они кэшировались в браузере клиента, и пользователь получит оптимальную производительность при использовании вашего сайта.В вашем текущем механизме вы должны добавить эти заголовки программно.3. Загрузка больших двоичных данных в базы данных и из них никогда не была самой эффективной операцией для базы данных, поэтому вы сможете полностью избавиться от этого кода.4. Вы можете применить к этим изображениям доменное имя без файлов cookie, чтобы предотвратить ненужную передачу файлов cookie, а также немного повысить производительность для ваших пользователей.Например, вы можете разместить свой веб-сайт на www.mysite.com, для ваших изображений вы можете назначить имя images.mysitestatic.com, и таким образом вы узнаете, что у вас нет файлов cookie на доменном имени mysitestatic.com, которое вашпользователю нужно будет загружать и скачивать каждый запрос.
Существует множество преимуществ размещения изображений на сервере, а не передача данных, таких как _images.ashx.Что касается URL-адресов, которые вы представили выше, они оба практически одинаковы.Если вы не стремитесь извлечь из них пользу, это не имеет значения.URL зависит от ваших целей по производительности / кэшированию / SEO и т. Д.
Надеюсь, это поможет.Mark