package cybersecurity

import (
	"fmt"
	"net/http"
	"time"
)

// FetchHTTPHeaders realiza una solicitud HTTP HEAD a la URL y devuelve los headers de respuesta.
func FetchHTTPHeaders(url string) (map[string][]string, error) {
	client := &http.Client{
		Timeout: 10 * time.Second,
	}

	resp, err := client.Head(url)
	if err != nil {
		return nil, fmt.Errorf("error realizando solicitud HEAD a %s: %w", url, err)
	}
	defer resp.Body.Close()

	headers := make(map[string][]string, len(resp.Header))
	for k, v := range resp.Header {
		headers[k] = v
	}

	return headers, nil
}
