separators embedded within html simply because their url parameter names are known not to conflict with html escapes in factthis concern is likely to be rare in practicesince your program usually controls the set of parameter names it expects this is nothoweverthe most general solutionespecially if parameter names may be driven by dynamic databasewhen in doubtescape much and often "how learned to stop worrying and love the weblest the html and url formatting rules sound too clumsy (and send you screaming into the night!)note that the html and url escaping conventions are imposed by the internet itselfnot by python (as you've learned by nowpython has different mechanism for escaping special characters in string constants with backslashes these rules stem from the fact that the web is based on the notion of shipping formatted text strings around the planetand are almost surely influenced by the tendency of different interest groups to develop very different notations you can take heartthoughin the fact that you often don' need to think in such cryptic termswhen you dopython automates the translation process with library tools just keep in mind that any script that generates html or urls dynamically probably needs to call python' escaping tools to be robust we'll see both the html and the url escape tool sets employed frequently in later examples in this and the next moreoverweb development frameworks and tools such as zope and others aim to get rid of some of the low-level complexities that cgi scripters face and as usual in programmingthere is no substitute for brainsamazing technologies like the internet come at an inevitable cost in complexity transferring files to clients and servers it' time to explain bit of html code that' been lurking in the shadows did you notice those hyperlinks on the language selector examplesmain pages for showing the cgi script' source code (the links told you to ignore)normallywe can' see such script source codebecause accessing cgi script makes it execute--we can see only its html outputgenerated to make the new page the script in example - referenced by hyperlink in the main language html pageworks around that by opening the source file and sending its text as part of the html response the text is marked with as preformatted text and is escaped for transmission inside html with cgi escape example - pp \internet\web\cgi-bin\languages-src py #!/usr/bin/python "display languages py script code without running it import cgi filename 'cgi-bin/languages pytransferring files to clients and servers