[racket] Print Cookie Path issue

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Fri Jul 1 16:07:11 EDT 2011

J G Cho wrote at 07/01/2011 03:27 PM:
> Looking at net/cookie-unit.rkt, it's not obvious to me why "" are being printed.

Looks like "cookie-path", for one, can add the quotes (indirectly; 
ultimately in "convert-to-quoted").

Offhand, I could not tell you with certainty what the correct behavior 
should be in all cases.  I'm guessing that most likely this is a bug in 
the Racket library, but it could also be a quirk of interaction with the 
servers when the library is actually standards-compliant.

One suggestion I have is to temporarily ignore the RFCs and other 
specifications, start up Wireshark, pick a test case Web page that your 
Racket program doesn't like, see what HTTP popular Web browsers like 
Firefox and recent IE receive and send for that page, and then compare 
to what your Racket program receives and sends.  Sadly, the popular 
browsers are the overriding de facto standard here, not IETF and W3C 
standards and other documents.

I say "receive and send" because sometimes problems like these are due 
to servers sending headers differently depending on what HTTP client 
they think is in use, or depending on unusual headers they receive from 
the client.  The server isn't always doing this for great reasons: 
besides working around bugs in old IE versions with hacks, they might 
simply be falling through to a buggy code path that hardly anyone ever 
sees because you aren't doing something in your headers that all the 
popular browsers do.

If you're not up to Wiresharking, I can do it this weekend, if you send 
me a standalone file of Racket code and a URL to a Web page that 
together demonstrate the problem.

(BTW, there is a proprietary Racket library for HTTP headers, which one 
company developed, and which I'm hoping they can open source.  I don't 
know whether it would handle this particular case differently.  This is 
an anecdotal reminder that it can be easier to feed open source 
contributions back to a project continuously from the start, than to try 
to open source after the fact.  Open-sourcing after the fact can present 
more unknowns all at once, and can require lots of work and agreements 
among many parties.  So, try to have agreements in place from the start, 
as a matter of course, and move your general-purpose code to PLaneT and 
as Racket patches early and often, so the unknowns are resolved in small 


Posted on the users mailing list.