Определение времени сеанса для сайта - PullRequest
0 голосов
/ 13 ноября 2010

Для одного из моих классов нам нужно рассчитать продолжительность сеанса для пользователя, посещающего веб-сайт.Нам дали веб-журнал.Веб-журнал имеет следующий формат:

IPAddress date httpMethod httpStatus size referrer browserInfo 
  • httpMethod выглядит следующим образом: GET /include/main_page.css HTTP/1.1
  • Реферер всегда является главной страницей: http://www.cs.myCollage.com или -

Я использую значение тайм-аута 20 минут.

ВОПРОСЫ: Я не уверен, как определить, когда сессия закончена, кроме какэто время вышлоЯвляется ли единственный способ завершить сеанс тайм-аутом?Есть ли способ определить, когда пользователь покидает сайт (используя только информацию в журналах)?


Это моя текущая стратегия (предположим, что у нас есть эти журналы):

IPAddress    Time    httpMethod    ...
IP1          2:15    GET something
IP1          2:17    GET something else
IP1          2:30    GET something else
IP1          4:30    GET something else
IP1          4:32    GET something else

Это означает, что у пользователя было два сеанса.Я думаю, что первая сессия будет или 15 минут или 35 минут.Стоит ли включать время ожидания во время сеанса?

Второй сеанс будет между 2 и 22 минутами.

1 Ответ

1 голос
/ 13 ноября 2010

Значение тайм-аута используется для разделения разных сеансов, приходящих с одного и того же IP (который не обязательно является одним и тем же человеком).В вашем примере у вас есть две разные сессии, потому что период с 2:30 до 4:30 больше значения тайм-аута.

Что касается определения продолжительности сессии, это, вероятно, простое решение для домашней работы класса, и, вероятно, то, что учитель имел в виду: просто вычтите время начала из времени окончания.В вашем случае 15 минут для первого сеанса и 2 минуты для второго.

Если это будет проект реального мира, то, возможно, последней странице в каждом сеансе тоже следует придать какое-то значение.Для этого вы можете использовать метод временной локализации:

Продолжительность последнего GET можно оценить по средней продолжительности всех страниц, предшествующих ему.В вашем примере (2: 15,2: 17,2: 30) первые две страницы длились 15 минут, поэтому, по оценкам, посетитель довольно медленный и / или тщательный, а третья страница длилась 7,5 минут, а общее количество сеансов - 22,5.минут.Из (4: 30,4: 32) мы выводим, что последняя страница длилась 2 минуты, а общее время сеанса составляет 4 минуты.В особом случае, когда у нас есть только одно посещение страницы, у вас должно быть какое-то произвольное значение длительности, например, 1 минута.

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

Лучшее реальное решение для мира, вероятно, будет сочетанием этих двух подходов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...