18 февр. 2008 г.

Firefox LiveConnection ?

Возникла потребность проверить сервлет под tomcat'ом на способность обрабатывать несколько запросов одновременно.
Для начала написал простой сервлет, который засыпает на 10 секунд и затем пишет текущее время.
Проверяю в броузере:
в одной вкладке http://localhost:8080/test и почти одновременно в соседней вкладке этот же url.

Результат:
в первой вкладке: Mon Feb 18 11:13:20 MSK 2008
в соседней: Mon Feb 18 11:13:30 MSK 2008

т.е запросы оказались выполнены последовательно.
Начал грешить на tomcat, мол вина в нём, но darkstar, проведя такой же эксперимент получает разницу в ~2-3 секунды, которые вполне оправдываются открытием новой вкладки и отправкой запроса.

В результате перепробовали tomcat 6, tomcat 5, java 5, java 6, cpu core2duo и pentium m, linux и windows - результат у нас один и тот же - запросы выполнены последовательно.

И тут всё же выясняется, что Роман использует для теста IE, а я Firefox.
За неимением IE в linux'е, проверяем на Opera и Firefox - один запрос отправляем в Opera, другой в Firefox.
Результат шокирует - разница ~2-3секунд. Качественно тот же результат получаем делая два параллельных запроса через wget.

Оказывается, firefox использует одно соединение с хостом, в то время как IE открывает каждый раз новое - т.о. именно firefox ставит запросы на выполнение в очередь, а не tomcat, и именно по вине (или из-за мудрости) firefox запросы выполняются последовательно.

Думаю, что погуглив можно найти более детальное описание.

Комментариев нет: