**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 session_check = params.get("session_check", "");
        session = context.acquireNamedSession(session_id, session_timeout, session_check == "1");
        context = session->context;
        context.setSessionContext(session->context);
    }
    SCOPE_EXIT({
        if (session)
            session->release();
    });
    
    
    
#if !defined(ARCADIA_BUILD)
    if (request.has("traceparent"))
    {
        std::string opentelemetry_traceparent = request.get("traceparent");
        std::string error;
        if (!context.getClientInfo().client_trace_context.parseTraceparentHeader(
            opentelemetry_traceparent, error))
        {
            throw Exception(ErrorCodes::BAD_REQUEST_PARAMETER,
                "Failed to parse OpenTelemetry traceparent header '{}': {}",
                opentelemetry_traceparent, error);
        }
        context.getClientInfo().client_trace_context.tracestate = request.get("tracestate", "");
    }
#endif
    
    
    context.setCurrentQueryId(params.get("query_id",