**Use case**
ClickHouse as a web server becomes a viable scenario.
(At least in backoffice).

**Describe the solution you'd like**
Add this field.

**Additional context**
It's in question how to name it. The original HTTP specs has the famous typo in it and name it `referer`. While JavaScript has this typo fixed and name it `referrer`.

if (request.getMethod() == Poco::Net::HTTPServerRequest::HTTP_GET)
    {
        if (settings.readonly == 0)
            context.setSetting("readonly", 2);
    }
    bool has_external_data = startsWith(request.getContentType(), "multipart/form-data");
    if (has_external_data)
    {
        
        reserved_param_suffixes.reserve(3);
        
        reserved_param_suffixes.emplace_back("_format");
        reserved_param_suffixes.emplace_back("_types");
        reserved_param_suffixes.emplace_back("_structure");
    }
    std::string database = request.get("X-ClickHouse-Database", "");
    std::string default_format = request.get("X-ClickHouse-Format", "");
    SettingsChanges settings_changes;
    for (const auto & [key, value] : params)
    {
        if (key == "database")
        {
            if (database.empty())
                database = value;
        }
        else if (key == "default_format")
        {
            if (default_format.empty())
                default_format = value;
        }