anchor.diff:                            :test #'equalp)
                 ;; TODO - perhaps we shouldn't write this when the client's HTTP version is <1.1?
                 (write-sequence +100-continue+ (reply-socket *reply*)))
  +            (when (member '("Connection" . "keep-alive") (request-headers *request*)
  +                          :test #'equalp)
  +              (setf (reply-keep-alive-p *reply*) t))
               (on-http-request driver)
               (on-request-data driver data))
             (parse-headers driver server rest)))))
  
positive.code:   ((headers :accessor reply-headers :initform nil)
     (status :accessor reply-status :initform 200)
     (socket :reader reply-socket :initarg :socket)
     (headers-written-p :accessor reply-headers-written-p :initform nil)))
  
  (defmethod close ((reply reply) &key abort)
    (unless (or (reply-headers-written-p reply) abort)
      (write-headers reply))
    (close (reply-socket reply) :abort abort))
  
  (defun reply-headers* ()
    (reply-headers *reply*))
  
negative.code:   ((driver :initarg :driver :accessor http-server-driver)
     (connections :initform (make-hash-table) :accessor http-server-connections)))
  
  (defun new-request (driver socket)
    (setf (gethash socket (http-server-connections driver))
          (cons (make-instance 'request
                               :socket socket
                               :external-format :utf-8 #+nil(server-external-format-in *server*))
                (make-instance 'reply
                               :socket socket
                               :http-server driver))))
  
  (defmethod on-server-connection ((driver http-server-driver) socket)
    (new-request driver socket))
  
  (defmethod on-socket-data ((driver http-server-driver) data
                             &aux
  