Найч
Алгоритмик :-)
HTTPS: запрос и чтение ответа через сокеты
Hi!
Необходимо через HTTPS отправить запрос на сервер и прочитать ответ.
Поскольку одно из требований - "мультипоточность" запросов, то реализовал через socket_select (CURL multi_init недоступен - пхп4, с fsocket не работает socket_select).
Сам коннект идет через
При посылке запросов через 80 порт
сервер возвращает ожидаемый результат
Читаю (после socket_select)
Если указать 443 порт, то коннектится, но ругается при попытке читать
Подскажите, плз, каким образом через SSL отправить запрос? Или каков должен быть запрос?
Смотрел через Proxomitron заголовки при общении браузера через https
Пока не очень помогло.
Hi!
Необходимо через HTTPS отправить запрос на сервер и прочитать ответ.
Поскольку одно из требований - "мультипоточность" запросов, то реализовал через socket_select (CURL multi_init недоступен - пхп4, с fsocket не работает socket_select).
Сам коннект идет через
PHP:
$sock_one = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($sock_one, $some_host, $port);
Код:
POST /test.php HTTP/1.1
Host: testhost.com
Content-type: application/x-www-form-urlencoded
Content-Length: 9
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
some data
Читаю (после socket_select)
PHP:
$rawdata = socket_read($resource, 20*1024);
Код:
Warning: socket_read() unable to read from socket [10054]: Удаленный хост принудительно разорвал существующее подключение.
Смотрел через Proxomitron заголовки при общении браузера через https
Код:
SSL cipher TLSv1 RC4-MD5 (128 bits)
GET /test.php HTTP/1.1
Host: some_host.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Pragma: no-cache
Cache-Control: no-cache
Connection: keep-alive

.