**Use case**

For creating external data dictionary with settings (url, headers, etc.) from config.xml `<named_collections>`  for HTTP sources.
This is to allow updating per environment test, staging, prod without updating `CREATE DICTIONARY` statement, values set externally.

**Describe the solution you'd like**

Add HTTP source options as currently available for PostgreSQL, MySQL, S3 and Kafka:
https://clickhouse.com/docs/en/operations/named-collections/
keys should be `url`, `user`,`password`, `headers`.

**Describe alternatives you've considered**

use different data source for named collections.
use custom settings.

cc: @kssenii 

{
    WriteBufferFromOwnString configuration_info;
    configuration_info << "username: " << username << "\t";
    if (addresses.empty())
    {
        configuration_info << "host: " << host << "\t";
        configuration_info << "port: " << port << "\t";
    }
    else
    {
        for (const auto & [replica_host, replica_port] : addresses)
        {
            configuration_info << "host: " << replica_host << "\t";
            configuration_info << "port: " << replica_port << "\t";
        }
    }
    return configuration_info.str();
}
void ExternalDataSourceConfiguration::set(const ExternalDataSourceConfiguration & conf)