Абсолютно - вы можете указать любые единицы измерения, которые вам нравятся.
Из RFC 2616:
3.12 Единицы измерения диапазона
HTTP / 1.1 позволяет клиенту запрашивать
эта единственная часть (диапазон)
Ответный объект должен быть включен в
ответ. HTTP / 1.1 использует единицы измерения диапазона
в диапазоне (раздел 14.35) и
Диапазон содержимого (раздел 14.16)
поля заголовка. Сущность может быть сломана
вниз в поддиапазоны в соответствии с
различные структурные единицы.
range-unit = bytes-unit | other-range-unit
bytes-unit = "bytes"
other-range-unit = token
Единственная единица измерения дальности, определяемая как
HTTP / 1.1 - это «байты». HTTP / 1.1
реализации МОГУТ игнорировать диапазоны
указано с использованием других единиц.
Ключевым элементом является последний абзац. На самом деле, это говорит о том, что когда они писали спецификацию для HTTP / 1.1, они только обрисовали в общих чертах маркер «байтов». Но, как вы можете видеть из бита 'other-range-unit', вы свободны придумывать свои собственные спецификаторы токенов.
Использование ваших собственных спецификаторов Range означает, что вы должны контролировать код клиента и сервера, который использует этот спецификатор. Итак, если у вас есть серверная часть, предоставляющая URI «/ document / content / http-range-question», все готово; по-видимому, вы используете современную веб-среду, которая позволяет вам проверять поступающие заголовки запросов. Затем вы можете посмотреть на значения Range, чтобы правильно выполнить запрос поддержки.
Кроме того, если вы управляете кодом AJAX, который делает запросы к бэкэнду, вы сможете установить заголовок Range самостоятельно.
Однако есть потенциальная обратная сторона, которую вы ожидаете в своем вопросе: возможность сломать кеширование. Если вы используете пользовательский модуль Range, любые кэши между вашим клиентом и исходными серверами «МОГУТ игнорировать диапазоны, указанные с использованием [единиц измерения, отличных от« байтов »]». Так, например, если у вас был кеш Squid / Varnish между передней и задней панелью, нет никакой гарантии, что результаты, на которые вы надеетесь, будут получены из кеша!
Вы могли бы также рассмотреть альтернативную реализацию, где вместо использования строки запроса вы делаете страницу «параметром» URI; например: / document / content / http-range-question / page / 1. Скорее всего, это будет немного больше работы для вас на стороне сервера, но он совместим с HTTP / 1.1, и кэши должны обрабатывать его правильно.
Надеюсь, это поможет.