FoxBase!
msgbartop
Блог Oracle разработчика
msgbarbottom
foxbase

09.11.2010 Indy TIdHTTP и HTTPS

HTTPS
Некоторые сайты требуют доступ по защищенному протоколу HTTPS или в процессе работы автоматически делают редирект на защищенную часть сайта. Так поступает, например, сайт livejournal.com при попытке завести новый журнал. TIdHTTP по умолчанию не может работать по HTTPS протоколу, его необходимо для этого настроить. Каким образом это сделать будет показано ниже. 
Принцип передачи данных по протоколу HTTPS (Hypertext Transfer Protocol Secure), который является расширением стандартного HTTP, состоит в упаковке HTTP данных и в передаче этих данных при помощи протокола SSL (Secure Sockets Layer). При этом гарантируется, что передаваемые по сети данные не могут быть вскрыты, так как SSL данные передаются в зашифрованном виде при помощи шифрования алгоритмом с открытым ключом. По умолчанию для SSL используется порт 443. Кстати, для socks proxy также необходимо использовать SSL.
Для того, чтобы Indy TIdHTTP мог работать через SSL необходимо скачать OpenSSL библиотеку последних версии и скопировать файлы libeay32.dllssleay32.dll в системный каталог Windows или в папку вашего Delphi проекта.
Следующим шагом необходимо создать экземпляр класса TIdSSLIoHandlerSocketOpenSsl (unit IdSSLOpenSSL) и присвоить его свойству IOHandler экземпляру класса TIdHTTP. Все, после этого TIdHTTP автоматически распознает HTTPS протокол и сможет нормально через него работать, включая хитрые автоматические редиректы через HTTP->HTTPS (как это делает при регистрации нового блога livejournal.com).
Что может быть неприятно, у вас могут возникнуть проблемы с Cookies, у Indy с этим давнишние большие проблемы. Можете попробовать использовать технологию независимого Cookie Manager, который не имеет присущих стандартному от Indy проблем при работе с Cookies.

www.foxbase.ru


Смотрите также:



Оставьте свой комментарий

Вы должны быть авторизированны, чтобы оставить комментарий.