Rubbish

Что ограничивает размер HTML-страницы 8000 символов?

Должно быть что-то действительно очевидное, что мне не хватает, но вот что:

Большая часть содержимого наших веб-страниц создается либо включениями на стороне сервера, либо вызовами AJAX загрузки страницы, поэтому размер файлов HTML, как правило, довольно мал. Однако при создании тестовой страницы без каких-либо сложностей я обнаружил, что если размер страницы превышает 8000 символов, сервер не передает страницу.

      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 

Повторите последнюю строку 16 раз, чтобы получить всего 17 полных строк. Затем добавьте эту часть строки:

 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliq. 

Выше всего 8001 символ, который не загружается с сообщением «Safari не может загрузить страницу, потому что сервер неожиданно закрыл соединение» и его вариациями с Firefox и Chrome. Удаление последней точки или любого другого символа приводит к обратному отсчету символа, поэтому страница загружается должным образом.

Может ли кто-нибудь дать мне представление о том, чего мне не хватает из-за того, что я не могу загрузить такой простой файл?

ОТВЕТ (вроде): Было очевидно, что проблема была вызвана mod_deflate, поэтому после некоторого поиска в Google я спросил на serverfault, знает ли кто, как изменить максимальный размер. Не было никаких ответов, поэтому я создал файл оболочки и включил исходный файл из 8000 символов в качестве серверного включения (SSI), и теперь он работает, как ожидалось. По-прежнему не понимаю, почему существует ограничение на простой HTML, а на SSI — нет, но у меня нет времени больше об этом беспокоиться.

РЕДАКТИРОВАТЬ: удалена директива SetOutputFilter DEFLATE, и теперь страница загружается, что говорит о том, что это действительно модуль deflate, который вызывает проблему. Добавление DeflateBufferSize 10000 (или действительно DeflateBufferSize 2048) не влияет на поддерживаемый размер, поэтому я закрою этот вопрос и спрошу о дефляции модуля при ошибке сервера.

Читайте также:  Javascript with mysql database

РЕДАКТИРОВАТЬ: Извините, я должен был упомянуть, что мы используем Apache 2.2.17 в Fedora 14. Это находится на виртуальной машине на моем ноутбуке, поэтому внешние факторы не задействованы.

РЕДАКТИРОВАТЬ: Еще одна вещь, которую я должен был добавить, — это то, что в журнале ошибок Apache ничего нет, даже если уровень журнала установлен на отладку. В журнале доступа отображается сообщение «200», но количество отправленных символов установлено как «-».

РЕДАКТИРОВАТЬ: Ниже редактируется httpd.conf, других файлов конфигурации нет. Выходные данные сдуваются, а затем распаковываются клиентом:

### Section 1: Global Environment ServerTokens prod CoreDumpDirectory /tmp ServerRoot "/etc/httpd" PidFile run/httpd.pid Timeout 120 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 StartServers 20 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 Listen 80 #SOME LOAD MODULE CONFIG LINES REMOVED LoadModule include_module modules/mod_include.so LoadModule env_module modules/mod_env.so LoadModule ext_filter_module modules/mod_ext_filter.so LoadModule expires_module modules/mod_expires.so LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so LoadModule dav_module modules/mod_dav.so LoadModule status_module modules/mod_status.so LoadModule info_module modules/mod_info.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule actions_module modules/mod_actions.so LoadModule cache_module modules/mod_cache.so LoadModule cgi_module modules/mod_cgi.so Include conf.d/*.conf ExtendedStatus Off User apache Group apache ### Section 2: 'Main' server configuration ServerAdmin root@localhost ServerName www.example.com:80 UseCanonicalName Off DocumentRoot "/var/www/html" Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all UserDir disabled DirectoryIndex index.html index.html.var AccessFileName .htaccess Order allow,deny Deny from all TypesConfig /etc/mime.types DefaultType text/plain MIMEMagicFile conf/magic HostnameLookups Off #LOG CONFIG LINES REMOVED ServerSignature Off Alias /icons/ "/var/www/icons/" Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all DAVLockDB /var/lib/dav/lockdb IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8 #ICON CONFIG LINES REMOVED ReadmeName README.html HeaderName HEADER.html IndexIgnore . * *~ *# HEADER* README* RCS CVS *,v *,t #LANGUAGE CONFIG LINES REMOVED AddDefaultCharset UTF-8 AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl AddHandler send-as-is asis AddHandler type-map var AddOutputFilter INCLUDES .html .xml AddType application/x-httpd-php .php .html Alias /error/ "/var/www/error/"   AllowOverride None Options IncludesNoExec AddOutputFilter Includes html AddHandler type-map var Order allow,deny Allow from all LanguagePriority en es de fr ForceLanguagePriority Prefer Fallback   #BROWSER MATCH CONFIG LINES REMOVED SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 SetHandler server-info Order deny,allow Deny from all Allow from 127.0.0.1 ### Section 3: Virtual Hosts NameVirtualHost *:80 FcgidMaxRequestLen 2000000 FcgidMinProcessesPerClass 5 FcgidIdleTimeout 18000 FcgidIOTimeout 60 TraceEnable Off SetEnvIf User-Agent ".*MSIE.*" ISIE true ServerName www.example.com UseCanonicalName off DocumentRoot /etc/httpd/www/examples/ DirectoryIndex index.html index.html.var CheckSpelling on CheckCaseOnly on Options Includes AllowOverride None Order Deny,Allow Allow from all Header Set Cache-Control "max-age=10" ExpiresActive On ExpiresByType text/html "access plus 10 seconds" ExpiresByType image/gif A259200 ExpiresByType image/jpg A3600 ExpiresByType text/html A259200 ExpiresByType image/ico A259200 SetOutputFilter DEFLATE Order Deny,Allow Deny from All #OTHER DIRECTORY CONFIG LINES REMOVED 

Источник

Читайте также:  Nodejs html to json

Существует ли максимальный размер веб-страниц?

Когда я говорю размер, я говорю о байтах, а не пикселях.

Мне любопытно, есть ли согласие относительно того, какой максимальный размер должен быть для разных категорий. В частности:

6 ответов

Размер не все. Что важно, так это производительность. Еще лучше: воспринимаемая производительность. Есть много способов заставить сайт чувствовать себя быстрее, чем он есть на самом деле. Некоторые из этих методов могут даже увеличить ваш абсолютный размер страницы в байтах (например, добавить к нему больше логики javascript).

Протестируйте свои сайты с помощью такого инструмента, как Yahoo! YSlow и прекратить фокусироваться на размере страницы. Это всего лишь один из факторов эффективности сайта, и даже не самый важный.

В зависимости от соединения вы хотите, чтобы страница загружалась как можно быстрее. Менее 4 секунд является оптимальным.

«Исследование, проведенное ведущим контроллером веб-трафика Akamai Technologies, показало, что плохо спроектированный веб-сайт теряет целых 30 процентов своих клиентов в течение нескольких секунд.В том же исследовании также было обнаружено, что если загрузка сайта занимает более четырех секунд, то 75 процентов зрители не потрудятся вернуться к нему «. http://www.ianbrodie.com/get-clients-online/lose-website-visitors-in-5-minutes/

Важнее, чем размер, следовать простым правилам и рекомендациям.
Лучшие практики для вашего сайта
http://developer.yahoo.com/performance/rules.html

Таким образом, приблизительная оценка будет

Broadband connections ~200K Dialup connections ~50k Mobile connections ~100K 

Ограничение 10 пакетов TCP (~14 кб)

Из-за того, как TCP оценивает емкость соединения (т. Е. TCP Slow Start), новое TCP-соединение не может сразу использовать всю доступную пропускную способность между клиентом и сервером. Из-за этого сервер может отправлять до 10 TCP-пакетов по новому соединению (~14 КБ) в первом цикле, а затем он должен ждать, пока клиент подтвердит эти данные, прежде чем он сможет увеличить свое окно перегрузки и приступить к доставке большего количества данных.

Из-за этого поведения TCP важно оптимизировать ваш контент, чтобы минимизировать количество циклических переходов, необходимых для доставки необходимых данных для выполнения первого рендеринга страницы. В идеале, содержание ATF должно умещаться до 14 КБ — это позволяет браузеру раскрасить страницу после всего одной поездки туда и обратно. Также важно отметить, что ограничение в 10 пакетов (IW10) является недавним обновлением стандарта TCP: вы должны убедиться, что ваш сервер обновлен до последней версии, чтобы воспользоваться этим изменением. В противном случае предел, вероятно, будет 3-4 пакета!

Зависит от страницы действительно. Если ваша страница является информативной, у вас будет много HTML (текстового) контента. Но если ваша страница более графическая (например, страница отдела магазина с изображениями продуктов), у вас будет много изображений.
Изображения намного тяжелее текста (одно изображение может иметь размер 50 КБ, что соответствует 10 страницам текста).
Вам также необходимо учитывать размер CSS-файлов, JavaScript и т. Д. Но они кэшируются, поэтому они имеют значение только для начальной загрузки.
Сказав это, вы можете установить цель 100-200 КБ (смешанный текст / изображения) максимум на страницу. Более того и более медленные соединения будут загружаться некоторое время.
Скорее всего, вы не знаете, кто будет посещать вашу страницу (мобильный, широкополосный или коммутируемый), поэтому вы должны попытаться найти общий язык (или разработать разные страницы для разных целей, но это сложно поддерживать в долгосрочной перспективе). как ваш сайт расширяется). Я думаю, что 100-200k подходит для большинства случаев.
Если у вас есть страницы большого размера, вы все равно можете достичь этого, есть несколько приемов, которые вы можете использовать, например сжатие изображений (с использованием JPG с качеством 90%), javascript/ajax для загрузки контента по требованию, минимизация файлов (CSS, javascript), используя сжатие сайтов (gzip) и т. д.

Читайте также:  University Website Design

Ваш «максимальный» размер действительно зависит от многих.

  • Какой тип связи у них есть
  • Какое время загрузки они ожидают
  • Какой контент они ожидают
  • Как ваш сайт загружает контент
  • Нужно ли пользователям перемещаться по сайту и регулярно получать несколько страниц, или перед перемещением возникают большие паузы?

Для любого сайта, пусть ваша страница будет как можно меньше. Хороший дизайн — это убирать вещи, пока не останется то, что вам нужно. Базовый HTML должен составлять несколько КБ, CSS — несколько КБ, и если вы загружаете скрипты и изображения, загружайте их в последнюю очередь.

При уменьшении размера страницы ваш сайт загружается быстрее, что означает, что ваши пользователи чувствуют себя более заинтересованными, а ваша страница лучше индексируется.

Источник

Оцените статью