Для быстрого и грязного теста (т. Е. Без оптимизации!) Я включил простой веб-сайт Ubuntu apache2 по умолчанию (который просто говорит «Это работает!») С http и https (самозаверяющий сертификат) на локальной виртуальной машине Ubuntu 9.04 и запустил apache бенчмарк " ab
" с 10 000 запросов (без параллелизма). Клиент и сервер находились на одной машине / виртуальной машине:
Результаты для http (" ab -n 10000 http://ubuntu904/index.html
")
- Время, затраченное на тесты: 2,664 секунды
- Запросов в секунду: 3753,69 (# / сек)
- Время на запрос: 0,266 мс
Результаты для https (" ab -n 10000 https://ubuntu904/index.html
"):
- Время, затраченное на тесты: 107,673 секунды
- Запросов в секунду: 92,87 (# / сек)
- Время на запрос: 10,767 мс
Если вы внимательно посмотрите (например, с помощью tcpdump или wireshark) на связь tcp / ip одного запроса, вы увидите, что для случая http требуется 10 пакетов между клиентом и сервером, тогда как https требует 16: задержка намного выше с https. (Подробнее о важности латентности здесь )
Добавление keep-alive ( ab
опция -k
) в тест улучшает ситуацию, потому что теперь все запросы используют одно и то же соединение, т. Е. Накладные расходы SSL ниже, но https по-прежнему измерим медленнее:
Результаты для http с keep-alive (" ab -k -n 10000 http://ubuntu904/index.html
")
- Время, затраченное на тесты: 1.200 секунд
- Запросов в секунду: 8334,86 (# / сек)
- Время на запрос: 0,120 мс
Результаты для https с keep-alive (" ab -k -n 10000 https://ubuntu904/index.html
"):
- Время, затраченное на тесты: 2,711 секунды
- Запросов в секунду: 3688,12 (# / сек)
- Время на запрос: 0,271 мс
Вывод :
- В этом простом тестовом примере https намного медленнее, чем http.
- Это хорошая идея, чтобы включить поддержку https и сравнить ваш веб-сайт, чтобы увидеть, хотите ли вы платить за https.
- Используйте wireshark, чтобы получить представление о накладных расходах SSL.