Обмен данными между серверами с использованием cURL, HTTPS POST - PullRequest
4 голосов
/ 29 августа 2011

Я реализую связь между серверами, которая должна (вероятно) выглядеть следующим образом:

клиент ( веб-браузер ) <-> ( веб-приложение ) сервер ( сервисный клиент ) <-> ( сервисное приложение ) центральный сервер

Некоторые клиентские запросы обрабатываются локально, а некоторые выполняются как вызовы удаленных служб (не RPC). Запрос к центральному серверу форматируется как HTTPS POST, а затем отправляется с использованием cURL; сервер отвечает соответствующим сообщением JSON.

Проблема в том, что я использую HTTPS, и для проверки сертификата требуется дополнительное время, каждый раз, когда выполняется сервисный запрос. Можно повторно использовать дескриптор cURL и отправлять заголовок соединения keep-alive, но ... В текущей реализации MVC каждый новый клиентский запрос приводит к новому экземпляру веб-приложения (и соответствующего сервисного клиента), то есть дескриптор повторно инициализируется и HTTPS-соединение устанавливается заново.

Итак, возникают следующие вопросы:

  1. Есть ли способ ускорить такие HTTPS-запросы? Например, как-нибудь обойти проверку после первого успешного подключения?
  2. Могу ли я отказаться от HTTPS (в частности, от длительной процедуры проверки сертификатов) и самостоятельно зашифровать / расшифровать POST и JSON (например, с помощью mcrypt) в сочетании с каким-либо методом авторизации (Диффи-Хеллман)?
  3. Я что-то делаю не так и должен немедленно прекратить?

Спасибо!

Ответы [ 2 ]

1 голос
/ 29 августа 2011

Вы измеряли издержки соединения HTTPS? Это действительно важно?

Если вы не хотите выполнять рукопожатие для каждого запроса, попробуйте установить постоянное защищенное соединение между сервером и центральным сервером.

Это можно сделать с помощью туннеля SSH, VPN и т. Д.

Редактировать : Локальный обратный HTTP-прокси, поддерживающий соединение активности на центральном сервере, также может быть вариантом.

0 голосов
/ 29 августа 2011
  1. Пакетируйте запросы в очереди и отправляйте их по x раз за раз, если это возможно
  2. Вы можете отправить ключ авторизации с запросом, чтобы только сервер и центральный сервер могли знать, как собрать. Но это оставит ваши фактические данные на виду, что может быть или не быть проблемой.
  3. Не то чтобы я сразу увидел
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...