internal static void HandleRequest(WebRequest request, string content)
        {
            //var url = this.RequestUrl;
            //if (url == "/") url = "index.html";
            //var local = Path.Combine(/*WebServer.HtmlDirectory*/ @"C:\Development\Sync\Terraria-s-Dedicated-Server-Mod\tdsm-core\WebInterface\Files", EncapsulatePath(url));
            var local = GetEncapsulated(request);

            if (local != null && local.Exists)
            {
                //TODO implement cache

                using (var fs = local.OpenRead())
                {
                    var ext = local.Extension.ToLower();
                    var contentType = "text/html";
                    if (_contentTypes.ContainsKey(ext)) contentType = _contentTypes[ext];

                    request.RepsondHeader(200, "OK", contentType, fs.Length);

                    var buf = new byte[512];
                    while (fs.Position < fs.Length)
                    {
                        var read = fs.Read(buf, 0, buf.Length);
                        if (read > 0)
                        {
                            request.Send(buf, read, SocketFlags.None);
                        }
                        else break;
                    }
                }

                request.End();
            }
            else
            {
                //var segments = request.RequestUrl.Split('/');
                if (request.Path != null)
                    if (_pages.ContainsKey(request.Path))
                    {
                        if (_pages[request.Path].CanProcess(request))
                        {
                            _pages[request.Path].ProcessRequest(request);
                            request.End();
                        }
                        else
                        {
                            request.RepsondHeader(404, "Not Found", "text/html", 0);
                            request.End();
                        }
                    }
            }
        }