Чем отличается запрос http get от запроса https в c?

Ранее существовала реализация получения и отправки http-запроса из системы POS на языке C на сервер. Однако из соображений безопасности сервер принимает только https на порту 443.

Реализация не работала на порту 443 с индикацией ошибок HTTP 400/362.

Вот пример кода,

char *build_get_query(char *host, char *page)
    {
      char *query;
      char *getpage = page;
      char *tpl = "GET /%s HTTP/1.0\r\nHost: %s\r\nUser-Agent: %s\r\n\r\n";
      /*if(getpage[0] == '/'){
        getpage = getpage + 1;
        fprintf(stderr,"Removing leading \"/\", converting %s to %s\n", page, getpage);
      } */
      // -5 is to consider the %s %s %s in tpl and the ending \0
      query = (char *)malloc(strlen(host)+strlen(getpage)+strlen(USERAGENT)+strlen(tpl)-5);
      sprintf(query, tpl, getpage, host, USERAGENT);
      return query;
    }

P.S. не эксперт в C Спасибо


person Acacia    schedule 15.01.2016    source источник


Ответы (1)


Вы не можете отправлять необработанный текст с помощью https, для этого требуется SSL или TLS. В зависимости от платформы, на которой вы работаете, вы можете использовать gnutls или openssl. И сделайте свой сокет TLS способным отправлять/получать зашифрованные данные на/с сервера.

person Iharob Al Asimi    schedule 15.01.2016
comment
Пожалуйста, поделитесь более подробной информацией, которую я могу передать моему разработчику - person Acacia; 15.01.2016
comment
Зачем тебе так помогать своему разработчику, найми еще одного. Если хотите, напишите на [email protected]. Сейчас я работаю над библиотекой, которая делает именно то, что вам нужно. С функциональностью, подобной printf(), и с включенным TLS или без него по мере необходимости. Он готов, напишите мне и мы поговорим об этом. - person Iharob Al Asimi; 15.01.2016