Что означает сообщение о статусе частичного содержимого HTTP 206 и как полностью загрузить ресурсы?

У меня есть несколько тегов изображений на таком сайте.

<img src="img.png"/>

Когда я пытаюсь их загрузить, они загружаются только наполовину. Когда я проверил запрос в сетевой консоли, я увидел, что ответ:

206 Частичное содержимое

Я погуглил, и он говорит, что если в заголовке есть диапазон, он будет таким. Но где на самом деле устанавливаются эти заголовки? И как мне этого избежать и загрузить полные изображения?


person prasadmsvs    schedule 03.04.2013    source источник
comment
Поиск в Google HTTP 206 дал следующее: benramsey.com / blog / 2008/05 /   -  person Colin 't Hart    schedule 03.04.2013
comment
Возможный дубликат Почему показывает ли Firebug ответ 206 Partial Content на запрос загрузки видео?   -  person Liam    schedule 07.01.2019
comment
На самом деле этот вопрос следует разделить на два вопроса: один о том, что означает HTTP 206, и второй о том, как заставить apache не использовать его.   -  person Aran Mulholland    schedule 25.03.2019


Ответы (4)


Из ответа user166390 на вопрос Почему Firebug показывает ответ 206 Partial Content на запрос загрузки видео?

Этот код частичного содержимого (206) может быть отправлен с сервера, когда клиент запросил диапазон (например, «дайте мне первые 2 МБ видеоданных»).

Это жизненно важно для загрузки данных по частям, что позволяет избежать загрузки неиспользуемых ресурсов. (Я редко смотрю полное видео онлайн.) Посмотрите исходящий запрос на заголовок Range.

person csaron92    schedule 03.04.2013

Клиент должен выполнить другой вызов, чтобы получить остальные данные (или следующий бит). Вам не нужно ничего делать, они в конечном итоге получат полный образ, даже если для этого потребуется несколько HTTP-вызовов.

person Penfold    schedule 03.04.2013

В первую очередь:

Код ответа HTTP 206 Partial Content об успешном статусе указывает, что запрос выполнен успешно и что его тело содержит запрошенные диапазоны данных, как описано в заголовке Range запроса.

Если есть только один диапазон, Content-Type всего ответа устанавливается на тип документа, и предоставляется Content-Range.

Если несколько диапазонов отправляются обратно, Content-Type устанавливается в multipart/byteranges, и каждый фрагмент охватывает один диапазон, а Content-Range и Content-Type описывают его.

(Из превосходного справочника по кодам состояния HTTP от Mozilla.)

Следующий:

Заголовки HTTP, установленные для ресурсов, обычно устанавливаются веб-сервером. Однако, если файл большой, например, видеофайл , браузер может запросить кусок загружаемого ресурса. Обычно заголовок HTTP 206 возвращается из запроса, инициированного клиентом. Заголовки, установленные для ресурсов в apache, задаются в разделе mod_headers файла httpd.conf. Найдите следующую строку, чтобы узнать, включено ли частичное содержимое:

Header set Accept-Ranges bytes

Этот раздел управляет поведением заголовков, установленных apache, поэтому с него можно начать.

Однако установка заголовков может быть выполнена разными способами. Например, при использовании apache вы можете контролировать загружаемые изображения, чтобы они кешировались. Это можно сделать с помощью [a2enmod module][2]. Это снизит нагрузку на ваш сервер.

person Aran Mulholland    schedule 25.03.2019

У меня была аналогичная проблема при загрузке шрифтов из разных поддоменов. В моем случае я получал 206 из-за проблем с кроссдоменом, и я решил это, просто поместив файл .htaccess в свою корневую папку:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>
person thiago marini    schedule 04.10.2014
comment
это конфигурация ngix или конфигурация apache httpd? - person Omer; 18.09.2017
comment
@Omer это для apache - person Anil Kumar; 19.02.2018