void BuildUrlComponents (string path, string query)
{
if (url_components != null)
return;
url_components = new UriBuilder ();
url_components.Scheme = worker_request.GetProtocol ();
url_components.Host = worker_request.GetServerName ();
url_components.Port = worker_request.GetLocalPort ();
url_components.Path = path;
if (query != null && query.Length > 0)
url_components.Query = query.TrimStart (queryTrimChars);
}