**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 

: log(&Poco::Logger::get("HTTPDictionarySource"))
    , update_time(other.update_time)
    , dict_struct(other.dict_struct)
    , configuration(other.configuration)
    , sample_block(other.sample_block)
    , context(Context::createCopy(other.context))
    , timeouts(ConnectionTimeouts::getHTTPTimeouts(context))
{
    credentials.setUsername(other.credentials.getUsername());
    credentials.setPassword(other.credentials.getPassword());
}
Pipe HTTPDictionarySource::createWrappedBuffer(std::unique_ptr<ReadWriteBufferFromHTTP> http_buffer_ptr)