anchor.diff:    (setf (gethash socket (http-server-connections driver))
           (let ((req (make-instance 'request
                                     :socket socket
  +                                  :http-server driver
                                     :external-format (http-server-external-format-in driver))))
             (cons req
                   (make-instance 'reply
  
positive.code:    (http-version :accessor request-http-version)
     (external-format :initarg :external-format :accessor request-external-format)
     (request-parser :initform (make-request-parser) :reader request-request-parser)
     (keep-alive-p :accessor request-keep-alive-p :initform t)
     (state :accessor request-state :initform :headers)
     (socket :initarg :socket :reader request-socket)))
  
  (defmethod close ((req request) &key abort)
    (setf (request-state req) :closed)
    (when abort
      (setf (request-keep-alive-p req) nil)))
  
  ;; TODO - the reply implementation needs to go below all the header parsing later anyway.
  (eval-when (:compile-toplevel :load-toplevel :execute)
  
negative.code:                           :test #'string-equal
                            :key #'car)
                    (string-equal "CONNECT" (request-method *request*)))
                   (upgrade-request *request* *socket* server driver rest))
                  (t
                   (when (member '(:expect . "100-continue") (request-headers *request*)
                                 :test #'equalp)
  