Полученные байты, показанные инструментами разработчика IE, и заголовок ответа Content-Length не согласуются
Я загружаю изображение, используя запрос GET, используя XmlHttpRequest с отключенным кешем. В IE10, когда я проверяю сетевую панель, я вижу, что столбец Received показывает различное количество байтов, а заголовок content-length показывает правильный размер изображения. Всякий раз, когда я обновляю страницу несколько раз, я вижу, что столбец "Получено" всегда показывает разные байтовые данные.
Мне нужно сколько размер изображения и сколько времени потребовалось, чтобы загрузить его для расчета пропускной способности. За определенное время я получаю запись изображения из performance5.getEntries () в HTML5 и проверяю продолжительность. Но для размера изображения я должен ссылаться на заголовок длины содержимого или полученные байты, показанные на сетевой панели?
1 ответ
Content-Length
Заголовок HTTP-ответа сообщает браузеру, сколько осталось запрошенных ресурсов. В вашем случае он должен равняться размеру изображения на диске.
Столбец "Получено" в инструментах разработчика IE F12 показывает, сколько байтов было передано по сети, что будет включать заголовок HTTP и может включать или не включать фактический запрашиваемый ресурс. Например, если ресурс уже находится в вашем кэше, Content-Length
В заголовке ответа HTTP будет указан размер запрашиваемого ресурса, а в столбце "Получено" в инструментах разработчика F12 будет отображаться только количество байтов заголовка ответа HTTP 304.
Для расчета пропускной способности на вашем компьютере разработчика вы должны взять столбец Получено, чтобы рассчитать, сколько байтов за интервал было отправлено.
Вы сможете оценить пропускную способность только "в дикой природе", поскольку не можете получить доступ к инструментам разработчика на компьютерах случайных посетителей. В этом случае вы бы указали, сколько времени понадобилось для загрузки ресурса через window.performance.getEntries()
, также известный как ResourceTiming.
Чтобы определить, сколько байтов было передано для этого ресурса, вы можете только догадываться. Вы знаете, что это было по крайней мере столько же байтов, сколько размер файла, но вы можете только оценить размер заголовка HTTP, так как он будет варьироваться в зависимости от пользователя / браузера / прокси. Вы также захотите убедиться, что ресурс не может быть в кеше пользователя, поэтому вам следует использовать параметр URL-адреса для очистки кеша и / или установить соответствующие заголовки HTTP Cache-Control.