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

String client_hostname;
    String client_name;
    UInt64 client_version_major = 0;
    UInt64 client_version_minor = 0;
    UInt64 client_version_patch = 0;
    unsigned client_tcp_protocol_version = 0;
    
    HTTPMethod http_method = HTTPMethod::UNKNOWN;
    String http_user_agent;
    
    
    
    
    String forwarded_for;
    
    String quota_key;
    bool empty() const { return query_kind == QueryKind::NO_QUERY; }
    /** Serialization and deserialization.
      * Only values that are not calculated automatically or passed separately are serialized.
      * Revisions are passed to use format that server will understand or client was used.
      */
    void write(WriteBuffer & out, const UInt64 server_protocol_revision) const;
    void read(ReadBuffer & in, const UInt64 client_protocol_revision);
    
    void setInitialQuery();
private:
    void fillOSUserHostNameAndVersionInfo();
};
}