For learning experience I wrote my own http server code, my prime focus is on beginners who want to write their own http server. In my code I am simply writing a html string on the browser however when I wrote this code a very obvious question came into my mind
that "Can I display Image on browser through this code ? ", well YES we can do this by simply reading the image bytes and writing it on to the output stream.
Steps to test this code 
1-Run the application
2-Open your browser type http://localhost:2000/ and hit enter 
2000 is my port number it can be different in your case 
using System;
using System.Linq;
using System.Net;
using System.Threading;
namespace ConsoleApplication3
{
    class
Program
    {
        public
static HttpListener 
_list = new 
HttpListener();
        static
void Main(string[] 
args)
        {    
                       _list.Prefixes.Add("http://localhost:2000/");
                     _list.Start()
            Console.WriteLine("server 
started");
            Thread 
th = new Thread(loadsite);
            th.Start();
            Console.Read();
        } 
        protected
static void 
loadsite()
        {
            while (true)
            {
                
HttpListenerContext context = _list.GetContext();
                byte[] 
response = Encoding.UTF8.GetBytes("<html><body>hello 
world</body></html>");
                
context.Response.OutputStream.Write(response, 0, response.Length);
                context.Response.KeepAlive =
false;
                context.Response.Close();
        }
    }
}