diff --git a/Server.go b/Server.go
index f987c51..c810681 100644
--- a/Server.go
+++ b/Server.go
@@ -121,6 +121,7 @@ func (s *server) handleConnection(conn net.Conn) {
 		ctx    = s.contextPool.Get().(*context)
 		method string
 		url    string
+		close  bool
 	)
 
 	ctx.reader.Reset(conn)
@@ -128,7 +129,7 @@ func (s *server) handleConnection(conn net.Conn) {
 	defer conn.Close()
 	defer s.contextPool.Put(ctx)
 
-	for {
+	for !close {
 		// Read the HTTP request line
 		message, err := ctx.reader.ReadString('\n')
 
@@ -183,6 +184,10 @@ func (s *server) handleConnection(conn net.Conn) {
 				Key:   key,
 				Value: value,
 			})
+
+			if value == "close" && strings.EqualFold(key, "connection") {
+				close = true
+			}
 		}
 
 		// Handle the request