On this page:
client-cookie
request-cookies
Version: 4.1.5.3

4.5 Extracting Cookies

 (require web-server/http/cookie-parse)

(struct client-cookie (name value domain path))
  name : string?
  value : string?
  domain : (or/c false/c valid-domain?)
  path : (or/c false/c string?)

While server cookies are represented with cookie?s, cookies that come from the client are represented with a client-cookie structure.

(request-cookies req)  (listof client-cookie?)
  req : request?

Extracts the cookies from req’s headers.

Examples:

  (define (start req)
    (define cookies (request-cookies req))
    (define id-cookie
      (findf (lambda (c)
               (string=? "id" (client-cookie-name c)))
             cookies))
    (if id-cookie
        (hello (client-cookie-value id-cookie))
        (redirect-to
         (url->string (request-uri req))
         see-other
         #:headers
         (list
          (cookie->header (make-cookie "id" "joseph"))))))
  
   (define (hello who)
     `(html (head (title "Hello!"))
            (body
             (h1 "Hello "
                 ,who))))