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

std::string password = request.get("X-ClickHouse-Key", "");
    std::string quota_key = request.get("X-ClickHouse-Quota", "");
    if (user.empty() && password.empty() && quota_key.empty())
    {
        
        
        if (request.hasCredentials())
        {
            Poco::Net::HTTPBasicCredentials credentials(request);
            user = credentials.getUsername();
            password = credentials.getPassword();
        }
        else
        {
            user = params.get("user", "default");
            password = params.get("password", "");
        }
        quota_key = params.get("quota_key", "");
    }
    else
    {
        
        if (request.hasCredentials()
            || params.has("user")
            || params.has("password")
            || params.has("quota_key"))
        {
            throw Exception("Invalid authentication: it is not allowed to use X-ClickHouse HTTP headers and other authentication methods simultaneously", ErrorCodes::REQUIRED_PASSWORD);
        }
    }