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

else if (param_could_be_skipped(key))
        {
        }
        else
        {
            
            if (!customizeQueryParam(context, key, value))
                settings_changes.push_back({key, value});
        }
    }
    if (!database.empty())
        context.setCurrentDatabase(database);
    if (!default_format.empty())
        context.setDefaultFormat(default_format);
    
    context.checkSettingsConstraints(settings_changes);
    context.applySettingsChanges(settings_changes);
    const auto & query = getQuery(request, params, context);
    std::unique_ptr<ReadBuffer> in_param = std::make_unique<ReadBufferFromString>(query);
    in = has_external_data ? std::move(in_param) : std::make_unique<ConcatReadBuffer>(*in_param, *in_post_maybe_compressed);
    
    
    used_output.out->setCompression(client_supports_http_compression && settings.enable_http_compression);
    if (client_supports_http_compression)
        used_output.out->setCompressionLevel(settings.http_zlib_compression_level);
    used_output.out->setSendProgressInterval(settings.http_headers_progress_interval_ms);
    
    
    if (in_post_compressed && settings.http_native_compression_disable_checksumming_on_decompress)
        static_cast<CompressedReadBuffer &>(*in_post_maybe_compressed).disableChecksumming();