2012-02-11 3 views
1

Я создаю веб-чат-приложение, которое должно будет сделать запрос AJAX для каждого отправленного или полученного сообщения. Я хотел бы, чтобы данные были зашифрованы, и я склоняюсь к запуску AJAX (с длинным опросом) по HTTPS.Понимание накладных расходов на установку HTTPS

Однако, поскольку частота запросов здесь намного выше, чем при базовом просмотре веб-страниц, я хотел бы лучше понять накладные расходы (использование сети, время, серверный процессор, клиентский процессор) при настройке зашифрованное соединение для каждого запроса HTTPS.

Помимо любой общей информации/советы, мне любопытно:

  • В очень грубом приближении, сколько дополнительного времени делает запрос на HTTPS берут по сравнению с HTTP? Предположим, что длина содержимого 1 байт и средний ПК.
  • Будет ли каждый запрос AJAX после первого иметь что-либо существенное кэширование, позволяющее ему быстрее установить соединение? Если да, то насколько быстрее?

Заранее спасибо :-)

ответ

1

Все в HTTPS медленнее. Личную информацию нельзя кэшировать, у вас есть шифрование на обоих концах, а SSL-квитирование относительно медленное.

Длительный опрос поможет. Длинные авиалинии хороши. Включение сеансов SSL на вашем сервере также позволит избежать больших накладных расходов.

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

+0

«Ничто не может быть кэшировано»: на самом деле это неверно. – Bruno

+0

Правда. Я немного обновил свой ответ. Затем возникает вопрос о том, «может ли противник». – Jordan

0

Вы получите дополнительную информацию от this article.

Большая часть накладных расходов находится в рукопожатии (обмен сертификатами, проверка их отзыва, ...). Возобновление сеанса и недавнее ложное начало расширение помогает в этом отношении. По моему опыту, худший сценарий случается при использовании аутентификации клиентского сертификата и рекламы слишком большого количества ЦС (the CertificateRequest message sent by the server can even become too big); это довольно редко, поскольку на практике, когда вы используете аутентификацию клиентского сертификата, вы принимаете только клиентские сертификаты из ограниченного числа ЦС.

Если вы правильно настроили свой сервер (для ресурсов, для которых он подходит), вы также можете включить кеширование браузера для ресурсов, обслуживаемых через HTTPS, используя Cache-Control: public.

Смежные вопросы