Вопрос Как отличается загрузка файла от доступа к веб-странице?


Я спрашиваю, потому что здесь у меня скорость загрузки, которая составляет 1 Мбит / с, а веб-страницы занимают очень много времени для загрузки (определенно не 1 Мбит / с).

Я предполагаю, что доступ к веб-странице в основном запрашивает ее с сервера, а затем каким-то образом «загружает» страницу и затем ее выполняет.

Я ошибаюсь? Что может быть причиной того, что у меня есть такая разница в скорости загрузки и веб-страницы?


4
2017-10-06 20:46


происхождения


Интересно видеть так много просмотров и ответов на ответы и так мало голосов по самому вопросу ;-) +1 за то, что вызвало интересную дискуссию! - Ivo Flipse♦


ответы:


На некоторых веб-страницах есть много отдельных компонентов, все из которых нужно загружать отдельно. Ваш браузер обрабатывает все это для вас, но часто с уменьшенной производительностью, так как нужно много разных подключений, и, вероятно, некоторым придется ждать, пока другие не закончатся. Более того, веб-страницы часто имеют данные с разных серверов (реклама, вероятно, поступает с их собственного сервера), а задержка для любого элемента может замедлить работу всего. Файл представляет собой простую загрузку одного файла из одного места.

Таким образом, пропускная способность (объем данных, которые вы можете загрузить в единицу времени) очень важна при загрузке файлов. Задержка (дополнительное время) имеет значение гораздо больше в Интернете.


2
2017-10-06 21:27



то не лучше, если бы мы могли «загрузить» веб-страницу (все ее компоненты, включая изображения и т. д.) за один раз (как обычная загрузка одного файла), а затем визуализировать ее. он сохранит время, которое запрос должен быть сделан для разных компонентов, и, следовательно, будет быстрее. Не так ли? - Lazer
Это бы но это не то, как работает Интернет. Если бы это было так, вам нужно было бы встроить все ваши изображения и т. Д. Каждое изображение представляет собой отдельный запрос к серверу. Вложение всех ваших изображений означает, что если вы хотите изменить одно изображение, используемое на разных страницах, вам придется изменить все разные страницы. - Drew
@Drew да, правильно, я понимаю это сейчас. - Lazer


Это может быть вызвано любым из следующих:

  • Сервер работает медленно.
  • На сервере медленное соединение.
  • Ваш компьютер работает медленно. Для рендеринга требуется время.
  • Хотя соединение позволяет трафик 1 Мбит / с, он имеет высокую задержку. Сравните это с кораблем. Вы можете загрузить много вещей на корабль, но добраться до места назначения займет много времени.

5
2017-10-06 20:49



Ваше сравнение сбивает с толку. 1Mb / s означает количество данных за определенный промежуток времени. По сути, это корабль, который может содержать 1 Мб груза и отправиться в пункт назначения за 1 секунду. Почему это будет медленнее? - Giffyguy
Скажем, что я заработал 1 Мб данных в Интернете за одну секунду. После того, как я это сделал, данные еще не достигли места назначения. Сначала он должен проходить через множество кабелей, маршрутизаторов и других вещей. Точно так же, как корабль должен пахать много океана. Сравните кабель с маршрутом доставки. Я мог бы поставить корабль на нем каждую секунду, с нагрузкой 1 Мб. Это не означает, что когда я отправляю второй корабль, первый уже достиг его цели. Именно эта латентность вы получаете, когда выполняете команду ping. - Bart van Heukelom
[@Bart van Heukelom] Думаю, я понимаю ваше сравнение (объясняет латентность), но он по-прежнему не объясняет разницу в скоростях, которые я получаю. Имеет ли это? - Lazer
Оно делает. Очень маленькая веб-страница может занять много времени, если латентность высока. Отправка почти пустого корабля займет столько же времени, сколько полностью заряженная (если мы проигнорируем, что загруженному судну требуется больше мощности двигателя: p) - Bart van Heukelom
Так есть разница в фактических скоростях, которые вы получаете, или вы просто основываете это на скорости, которую дает ваш провайдер? - Josh Hunt


Важно понять, как загружается веб-страница, чтобы понять, почему загрузка 1 МБ-файла может быть быстрее, чем даже 256 КБ, которая содержит веб-сайт.

  1. Если сжатие GZIP присутствует на веб-сервере для HTML / JavaScript / и т. Д. (скорее всего), ваш браузер загрузит сжатый контент, а затем его распаковать.
  2. Изображения могут быть только 30-40k, но декодированы они могут составлять много мегабайт в памяти
  3. Если на веб-сайте есть несколько внешних файлов (CSS / JavaScript / Images), каждый из этих файлов можно загрузить по отдельному соединению в составе вашего браузера, составляющего страницу
  4. Загрузка файла - это базовая операция в HTTP / FTP, которая упрощена. Нет никакого контента, чтобы различать и визуализировать

3
2017-10-06 21:14



Я никогда не знал, что декомпрессия и декодирование должны быть выполнены ... - Lazer


Еще не упомянуто - в наши дни больше загружается обычная загрузка веб-страниц, чем текст, который вы видите в своем браузере. Если страница, которую вы посещаете, имеет возможность редактирования, она, вероятно, содержит много кода для ее обработки. TinyMCE является популярным редактором javascript «Rich Text» для Интернета. Это крошечный, но это не что крошечный.

TinyMCE

Это всего лишь один пример, но такого рода вещи раздувают всевозможные веб-страницы и могут сделать ваш просмотр не то, что вы ожидаете. В зависимости от лица, создающего веб-страницу или веб-приложение, вы можете загрузить приложение, подобное этому используете ли вы его или нет, Он просто загружен в память, ожидая.

Другой аспект - психологический. Когда вы выбираете файл для загрузки, вы ожидаете ждать его прибытия. Когда вы нажимаете ссылку на страницу, вы более склонны рассчитывать на мгновенное удовлетворение, поэтому я не говорю «все в вашей голове», там определенно ожидание.


2
2017-10-07 03:54



@DaveParillo это тоже то, что я знаю. У меня была идея, вы это подтвердили. - Lazer


Для загрузки соединение согласовывается в начале передачи файла, и ваша скорость поднимается до нормального уровня. Эта часть передачи файлов медленная (как вы можете иногда видеть в строке состояния вашего веб-браузера .. отправка запроса на [сайт] ... ожидание ответа с [сайта], и это занимает некоторое время). Каждый раз, когда вы запрашиваете веб-страницу, эти же переговоры продолжаются. Также может случиться так, что сервер может медленно реагировать на запросы из-за загрузки, или ваш браузер медленно обрабатывает данные.


1
2017-10-06 20:49



это имеет смысл. - Lazer


Вы не указали, какой браузер вы используете, и какое у вас было подключение к Интернету.

Если интернет-соединение, например. спутниковая связь, у нее высокая пропускная способность и очень низкая пропускная способность и высокая латентность. Аналогичная вещь относится к мобильному соединению 3G / HSDPA, хотя время ожидания ниже, чем у спутника, но все же часто 10-30x по сравнению с ADSL или кабелем.

Это может быть еще хуже, если использовать плохой браузер, например Internet Explorer, который открывает 2-3 параллельных соединения при загрузке файлов с веб-сервера. При использовании соединений типа «мобильный телефон», HTTP-соединение, которое выполняет трехстороннее рукопожатие TCP / IP, один файл может занять почти секунду, прежде чем он начнет загружаться, теперь он объединяет это с несколькими одновременными соединениями из браузера, и он внезапно принимает десятки секунд, чтобы загрузить небольшую веб-страницу с несколькими изображениями и таблицами стилей и javascripts, связанными с ней.

Я использую Opera, которая позволяет мне устанавливать параллельные соединения с некоторым очень высоким числом, например 32 или более. Это означает, что при открытии веб-сайта по ссылке с высокой задержкой браузер занимает пару секунд, чтобы выполнить рукопожатие с сервером, а затем он загружает 32 элемента одновременно и часто может максимизировать пропускную способность загрузки, которая никогда не произойдет, если браузер загрузит одиночные / несколько файлов за раз.

Разница скоростей также может произойти, если компьютер работает медленно или не хватает памяти, и браузер может затем запустить машину, пока он отображает страницу. Этого можно избежать, используя более быстрый / более легкий браузер, например Opera, или, если это возможно, установите браузер не для отображения страницы, пока он не загрузит все необходимые элементы. В настоящее время браузеры пытаются сделать страницу как можно скорее, что обычно заставляет их повторно отображать страницу несколько раз, и это может быть медленным на более старой машине.


0
2017-10-07 01:20



@Raynet Windows Vista, Firefox 3.5, память не проблема (3 ГБ), мое соединение - это выделенная линия, разделенная примерно на 300 человек. - Lazer