Я пишу небольшой HTTPS-клиент на C , и у меня возникла проблема с функцией SSL_write.
Три теста для иллюстрации моей проблемы:
#define HEADERS1 "GET / HTTP/1.1\r\n"
#define HEADERS2 "Host: www.example.com\r\n"
#define HEADERS3 "User-Agent: OpenSSL\r\n"
#define HEADERS4 "\r\n"
#define HEADERS "GET / HTTP/1.1\r\nHost: www.example.com\r\nUser-Agent: OpenSSL\r\n\r\n"
Тест 1:
SSL_write(ssl,HEADERS,strlen(HEADERS));
Успешно: сервер правильно возвращает ресурс /index.html с кодом HTTP / 1.1 200.
Тест 2:
SSL_write(ssl,HEADERS1,strlen(HEADERS1));
SSL_write(ssl,HEADERS2,strlen(HEADERS2));
SSL_write(ssl,HEADERS3,strlen(HEADERS3));
SSL_write(ssl,HEADERS4,strlen(HEADERS4));
Сбой: сервер ничего не возвращает. Все функции SSL_write не возвращают ОШИБКУ, но мое приложение заблокировано на SSL_read, потому что целевой сервер не выдает содержимое ... и заголовки: (
Тест 3:
SSL_write(ssl,HEADERS1,strlen(HEADERS1));
SSL_write(ssl,HEADERS2,strlen(HEADERS2));
SSL_write(ssl,HEADERS4,strlen(HEADERS4));
Успешно: Сервер правильно возвращает ресурс /index.html с кодом HTTP / 1.1 200.
Есть ли конкретное ограничение на количество раз, когда я могу вызывать SSL_write для отправки заголовков? Очень странно ...
Большое спасибо!
Хорошо, моя проблема сохраняется, но у меня есть более подробная информация:
IISS-SSL => Все тесты пройдены успешно.
Apache-SSL => Все тесты пройдены успешно.
Nginx-SSL => Все тесты пройдены успешно.
LightHTTPD-SSL => Сбой теста 2.
Я не понимаю, почему только LightHTTPD не понимает мою просьбу ...