Как получить данные header в http ответе?

Для получения данных заголовков в HTTP-ответе в языке программирования C вам потребуется использовать сокеты и функцию из библиотеки libcurl.

Сначала вам нужно установить и настроить библиотеку libcurl в вашем проекте. Затем вы можете использовать следующий код для выполнения запроса и получения данных заголовков:

#include <stdio.h>
#include <curl/curl.h>

// Функция-обработчик, вызывается для каждого заголовка
size_t header_callback(char* buffer, size_t size, size_t nitems, void* userdata) {
    size_t num_bytes = size * nitems;
    printf("%.*s", num_bytes, buffer);
    return num_bytes;
}

// Функция, которая отправляет запрос и получает ответ с заголовками
void get_headers(const char* url) {
    CURL* curl = curl_easy_init();
    if (curl) {
        CURLcode res;
        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, header_callback);

        res = curl_easy_perform(curl);

        if (res != CURLE_OK) {
            fprintf(stderr, "Ошибка выполнения запроса: %sn", curl_easy_strerror(res));
        }

        curl_easy_cleanup(curl);
    }
    else {
        fprintf(stderr, "Не удалось инициализировать libcurln");
    }
}

int main() {
    const char* url = "http://example.com";
    get_headers(url);
    return 0;
}

Когда этот код будет выполнен, он отправит GET-запрос по заданному URL-адресу и выведет полученные заголовки на консоль. Вы можете изменить обработчик header_callback, чтобы сохранять заголовки в файл или выполнять другую логику обработки.

Обратите внимание, что этот код использует библиотеку libcurl, которая предоставляет простой интерфейс для работы с HTTP-запросами и ответами. Вы можете установить libcurl на свою систему с помощью менеджера пакетов, такого как apt (для Ubuntu) или Homebrew (для macOS).