page' address fieldeven though we really typed it into form clicking the link at the bottom of figure - opens the file-getter script' source in the same waythough the url is explicit +handling private files and errors as long as cgi scripts have permission to open the desired server-side filethis script can be used to view and locally save any file on the server for instancefigure - shows the page we're served after asking for the file path pymailcgi/pymailcgi html-an html text file in another application' subdirectorynested within the parent directory of this script (we explore pymailcgi in the next users can specify both relative and absolute paths to reach file--any path syntax the server understands will do figure - viewing files with relative paths more generallythis script will display any file path for which the username under which the cgi script runs has read access on some serversthis is often the user "nobody"- predefined username with limited permissions just about every server-side file used in web applications will be accessiblethoughor else they couldn' be referenced from browsers in the first place when running our local web serverevery file on the computer can be inspectedc:\users\mark\stuff\websites\public_html\index html works fine when entered in the form of figure - on my laptopfor example +you may notice another difference in the response pages produced by the form and an explicitly typed urlfor the formthe value of the "filenameparameter at the end of the url in the response may contain url escape codes for some characters in the file path you typed browsers automatically translate some non-ascii characters into url escapes (just like urllib parse quoteurl escapes were discussed earlier in this we'll see an example of this automatic browser escaping at work in an upcoming screenshot transferring files to clients and servers