private void HandleRequest(Socket socket)
        {
            try
            {
                NetworkStream networkStream = new NetworkStream(socket);
                IRequest      request       = new Request(networkStream);

                //if(request.Url.RawUrl.Contains("favicon.ico"))
                //{
                //    ConsoleWrite.Red("favicon.ico");
                //    var faviconResponse = new Response();
                //    faviconResponse.StatusCode = 404;

                //    faviconResponse.Send(networkStream);
                //    return;
                //}

                if (!request.IsValid)
                {
                    ConsoleWrite.Red("Invalid request.");
                    return;
                }

                IPlugin   plugin   = pluginManager.GetBestSuitingPlugin(request);
                IResponse response = plugin.Handle(request);

                response.Send(networkStream);
                networkStream.Flush();
                //networkStream.Close(); //???
                ConsoleWrite.Green("Response sent successfully. (" + plugin.GetType().Name + ")");
            }
            catch (Exception e)
            {
                ConsoleWrite.Red("Error occured! Error: " + e.Message + ": " + e.InnerException);
            }
        }