Страница 1 из 2

Объём запроса на сервер

Добавлено: 25 янв 2007, 17:15
pashtet
Незнаю в какую ветку надо было писать, написал сюда.
Вообщем подскажите, как много инфы и какую отправляет броузер на сервер?
Сделал более менее со скрипом рабочий чат, но возникла ужасная проблема.
Если зайти в чат и просто молчать за час набегает по 3,5 мегабайта трафика в каждом направлении. Итого 7 мегабайт. Клиентская часть посылает запрос 2 раза в секунду, при этом передаёт и получает запрограммированные мною параметры. И я вот думаю, какая доля из этих 7 мегабайт моя, а какую броузер отправляет сам, и есть ли смысл каким либо способом сокращать данные которые программирую я или там даже без них при такой частоте посыла запросов будет пару метров трафика?

Re: Объём запроса на сервер

Добавлено: 26 янв 2007, 10:54
isms.ru
2 запроса в секунду? офигеть. Ответ идет больше. Ну да ладно.
Это получается, что 3600*2=7200 запросов. Если 3500 кб исходящего, то получается около 500 байт на запрос.
Очень мало. Если учитывать, что некоторые телефоны отдают по 3.5 кило.
Чтобы понять, что и как, смотри на сервере переменные окружения (env) они, как правило - отдаются браузером. Или поставь дампер и смотри, что когда и куда уходит.

Re: Объём запроса на сервер

Добавлено: 27 янв 2007, 20:32
pashtet
Ну ответ вроде успевает придти. Да и без него кажется новый запрос непосылается... чёт непомню уже.
Ну отправляются значит только те переменные которые я отправил? всякие там куки и прочие гетовые и постовые переменные? Или плюс ко всему отправляется ещё куча всякой служебной инфы?
Если только вводимые мной переменные то впринципе подсократить трафик можно хотябы разика эдак в два... а если и ещё частоту запроса до раза в секунду уменьшить то...

Re: Объём запроса на сервер

Добавлено: 28 янв 2007, 00:16
pashtet
Подумал что если использовать вместо куки сессии трафик уменьшится.
Только при первом испытании он возрос в полтора раза, второй раз вроде стал чуть больше чем с куки. А ещё и оказалось что сессии это небезопасно, так что отказался

Re: Объём запроса на сервер

Добавлено: 28 янв 2007, 01:50
Oscar
pashtet,

если писать чат под web-браузеры, то без HTTP заголовков не обойтись.
Если посмотреть общение браузера с сервером, то видно следующее:
Request == Response ~ 500 byte (+/- 100 bytes)

И это при пустых данных!

два "общения" в секунду = 2 Кб (2 * (Request + Response) )

2*60*60 = 7200 Кб/час ~ 7 Мб/час

и тут уж ничего не поделаешь ...


Так что твой чат ещё очень экономный, должен сказать.


Решение для проблемы траффика существует, но не идеальное.

Можно использовать - демон чаты, в смысле чаты с демоном.
демон для чата - это программка, которая бежит на сервере и если приходят новые сообщения, оповещает всех пользователей.

Недостатка два, ну точнее три.

1. сервер должен это позволять (вписать php или чего там ещё в cron таблицу, если сервер на *nix),
чтобы каждую секунду проверять базу данных (или на основе чего работает чат) на наличие новых сообщений и отсылать уведомления пользователям.
2. обратные сообщения НЕ СМОГУТ доходить, если пользователь сидит за непрозрачным прокси, поскольку не будет известно, на какой IP слать сообщения (в этом пункте я не уверен, но скорей всего)
3. естественно намного сложней написать такое дело

Преимущества? Клиенту вообще не надо отсылать запросы и читать ответы, потому при молчании не будет использоваться ни одного байта траффика.

Но тут ещё есть один недостаток. Сложно сказать, когда пользователь выйдет из чата.
Но это общая проблема. В обычных чатах ставится timeout на request_ы, но вот gmail.com делает это как-то иначе...
В любом случае, из соображений безопасности, НЕ РАЗРЕШАЕТСЯ запускать JS в тот момент, когда пользователь покидает страницу (закрывает окно браузера),
а потому и нельзя сказать серверу, что пользователь уже ушел.

Re: Объём запроса на сервер

Добавлено: 28 янв 2007, 11:39
pashtet
Про демоны слышал и даже читал. Конечно такой чат самый лучший, только это немоего ума, тем более многое от сервера зависит.
То что больше ничего поделать нельзя это конечно плохо...
Думаю мож ещё просто имена переменных которые передаются сократить до пары буковок :) правда блин исправлять кучу всего придётся, да и потом ничего неразберёшь.
Кстати насчёт выхода из чата. У меня всё отлично выходит если пользователь:
1)нажал на соответсвующую кнопочку
или
2)закрыл окно браузера
или
3)перешёл по на другую страницу
Неработает только если у него проблемы с соединением и инетернет просто отрубается.

Re: Объём запроса на сервер

Добавлено: 29 янв 2007, 08:19
__Yuri__
pashtet писал(а): Кстати насчёт выхода из чата. У меня всё отлично выходит если пользователь:
1)нажал на соответсвующую кнопочку
или
2)закрыл окно браузера
или
3)перешёл по на другую страницу
Неработает только если у него проблемы с соединением и инетернет просто отрубается.
Ну тут можно повесить на событие onunload тэга body в функции JavaScript HTTPrequest на сервер.

Re: Объём запроса на сервер

Добавлено: 29 янв 2007, 08:20
isms.ru
2Паштет: всегда отправляются переменные окружения.
Из последнего письма: т.к. у иебя клиентская сторона - на джаваскрипте - то "отлично" пользователь не выходит. Вернее все хорошо только в перечисленных тобой 2 случаях, в остальных 1000 - засада.
Для чата используй спец ПО.

Re: Объём запроса на сервер

Добавлено: 30 янв 2007, 09:41
pashtet
Поэкспериментировал и получилось такая вот ерунда:
1)если отправлять запрос на пустой файл трафик не крутится ни в одном направлении
2)если в пустом файле написать header("Cache-Control: no-cache, must-revalidate"); - то бишь отменить кэширование то при 2-х запросах в секунду трафик всё равно составляет около 1кбайт/с в каждом направлении. И это при том что совершенно ничего не передаётся, только два куки. Но думаю от них мало что зависет.
Ничего непонимаю, откуда берётся этот один килобайт. Подскажите у кого какие мысли пожалуйста, а то парюсь парюсь а походу это бесполезно

2isms.ru ну я незнаю что такое за спец ПО, но если это просто шаблоны какие-то то нехочу. Мне именно интерес в том чтобы самому что нить сделать. А так можно было бы скачать вообще готовые скрипты чата. Конечно сомневаюсь что они прям хорошие, но явно получше моего

Re: Объём запроса на сервер

Добавлено: 30 янв 2007, 15:01
__Yuri__
Есть доки по Html протоколу, там подробнейше жуется как он должен осуществляться.
На самом деле обсуждение не в той ветке. Imho ничего лучше Php для создания чата не придумать, так что это надо обсуждать веткой ниже.