"303 See other" в ответе HTTP HEAD
Я создаю веб-приложение ASP.NET Azure (веб-роль), которое контролирует доступ к файлам, хранящимся в хранилище BLOB-объектов Azure. По запросу GET мой HttpHandler аутентифицирует пользователя и создает подпись общего доступа для этого конкретного файла и пользователя с коротким периодом времени (скажем, 30 минут). Клиент - это медиаплеер, который проверяет наличие обновленных мультимедийных файлов с помощью HEAD, и, если заголовок "Последнее изменение" отличается, он отправляет запрос GET. Поэтому я не хочу создавать URL-адрес SAS, а скорее возвращать измененные LAst, заголовки Etag и Content-length в ответ на запрос HEAD. Это плохая практика? Если файл обновлен, нет необходимости загружать его снова и, следовательно, не нужно создавать URL-адрес SAS.
Пример запроса:
GET /testblob.zip
Host: myblobapp.azurewebsites.net
Authorization: Zm9v:YmFy
Отклик:
HTTP/1.1 303 See other
Location: https://myblobstorage.blob.core.windows.net/blobcontainer/testblob.zip?SHARED_ACCESS_SIGNATURE_DATA
Какие-нибудь мысли?
1 ответ
Есть ли конкретная причина, чтобы заставить клиента сначала сделать запрос HEAD? Вместо этого он может выполнить проверку подлинности с использованием вашей службы, получить токен SAS, сделать запрос GET с использованием заголовка If-Modified-Since для хранилища Azure и загрузить большой двоичный объект, только если он был изменен с момента последней загрузки. Дополнительные сведения об условных заголовках, которые поддерживает служба BLOB-объектов хранилища Azure, см. В разделе " Указание условных заголовков для операций службы BLOB-объектов".