Обслуживание байтов
HTTP |
---|
![]() |
Методы запроса |
Поля заголовка |
Коды статуса ответа |
Методы безопасного контроля доступа |
Уязвимости безопасности |
Обслуживание байтов (другие названия: Запросы диапазона ; Обслуживание диапазона байтов ; [1] Страница по запросу [2] ) — это процесс, представленный в протоколе HTTP 1.1, заключающийся в отправке только части сообщения с сервера клиенту. Обработка байтов начинается, когда HTTP-сервер объявляет о своей готовности обслуживать частичные запросы, используя Accept-Ranges заголовок ответа . Затем клиент запрашивает определенную часть файла с сервера, используя Range заголовок запроса . Если диапазон действителен, сервер отправляет его клиенту с 206 Partial Content кодом состояния и заголовком Content-Range, в котором указан отправленный диапазон. Если диапазон недействителен, сервер отвечает кодом состояния 416 Requested Range Not Satisfiable . [3]
Клиенты, запрашивающие побайтовую обработку, могут делать это в тех случаях, когда большой файл доставлен лишь частично и требуется ограниченная часть файла в определенном диапазоне. Таким образом, обслуживание байтов является методом оптимизации полосы пропускания . [4] В стандарте HTTP/1.0 клиенты могли запрашивать только весь документ. Разрешая обслуживание байтов, клиенты могут запрашивать любую часть ресурса. Одним из преимуществ этой возможности является то, что когда запрашивается большой медиафайл и этот медиафайл правильно отформатирован, клиент может запросить только те части файла, которые, как известно, представляют интерес. Это важно для обслуживания видеофайлов; если на сервере отсутствует эта функция, видео, размещенные на этом сервере, могут быть недоступны для воспроизведения до тех пор, пока клиент не загрузит весь файл, а поиск в файле может быть отключен. Аналогично PDF- файлы могут быть оптимизированы для обслуживания байтов, чтобы файлы размером в несколько гигабайт можно было мгновенно просматривать в браузере, запрашивая только данные, необходимые для отображения текущей страницы. [5]
Обслуживание байтов также может использоваться многосетевыми клиентами для одновременной загрузки ресурса через несколько сетевых интерфейсов. [6] Для достижения такого типа агрегации ссылок на уровне приложения устанавливаются несколько сеансов HTTP, а сегменты логических файлов совместно загружаются с сервера и повторно собираются на клиенте. Это позволяет полностью использовать несколько сквозных путей и, следовательно, приводит к увеличению скорости загрузки.
Использование Chunked Transfer-Encoding не является передачей байтов, а представляет собой метод, при котором сервер HTTP/1.1 отправляет весь ресурс, но в нескольких отдельных частях (или фрагментах) данных. [7] Он часто используется, когда сервер не знает точно, сколько данных будет в общем ответе, что позволяет серверу сразу начать отправку данных клиенту без необходимости буферизации ответа и определения точной длины, прежде чем он начнет его отправлять. клиенту. Это уменьшает задержку и снижает требования к памяти, сохраняя при этом возможность повторного использования соединения после завершения ответа. Обслуживание байтов и разделение на фрагменты совместимы и могут использоваться вместе или без друг друга. Более поздние версии протокола HTTP продолжают поддерживать обслуживание байтов. [8] хотя использование фрагментированного кодирования передачи заменяется альтернативными методами.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Неделя апачей. HTTP/1.1
- ^ Обслуживание байтов: определение обслуживания байтов в Бесплатной онлайн-энциклопедии.
- ^ RFC 7233: Протокол передачи гипертекста (HTTP/1.1): запросы диапазона
- ^ Ключевые различия между HTTP/1.0 и HTTP/1.1 «Типичным примером является отправка сервером всего (большого) ресурса, когда клиенту нужна только небольшая его часть. В HTTP/1.0 не было возможности запрашивать частичные объекты. Запросы диапазона HTTP/1.1 позволяют клиенту запрашивать части ресурса».
- ^ Включить быстрый веб-просмотр в PDF-файле.
- ^ Улучшение воспроизведения видео по запросу в нескольких сетях с гетерогенным доступом , Д. Каспар, К. Р. Эвенсен, П. Е. Энгельстад, А. Ф. Хансен, П. Халворсен и К. Гриводз. В: Конференция IEEE по потребительским коммуникациям и сетям (CCNC), ISBN 978-1-4244-5176-0 , 2010 г.
- ^ «HTTP-разделение» . Архивировано из оригинала 8 февраля 2012 г.
- ^ RFC 7540, раздел 8