on to explore scripts designed to be run on the server side instead python programs can also produce pages on web serverand there is support in the python world for implementing the server side of things like httpemailand ftp for nowlet' focus on the client ftptransferring files over the net as we saw in the preceding sockets see plenty of action on the net for instancethe last getfile example allowed us to transfer entire files between machines in practicethoughhigher-level protocols are behind much of what happens on the net protocols run on top of socketsbut they hide much of the complexity of the network scripting examples of the prior ftp--the file transfer protocol--is one of the more commonly used internet protocols it defines higher-level conversation model that is based on exchanging command strings and file contents over sockets by using ftpwe can accomplish the same task as the prior getfile scriptbut the interface is simplerstandard and more general--ftp lets us ask for files from any server machine that supports ftpwithout requiring that it run our custom getfile script ftp also supports more advanced operations such as uploading files to the servergetting remote directory listingsand more reallyftp runs on top of two socketsone for passing control commands between client and server (port )and another for transferring bytes by using two-socket modelftp avoids the possibility of deadlocks ( transfers on the data socket do not block dialogs on the control socketultimatelythoughpython' ftplib support module allows us to upload and download files at remote server machine by ftpwithout dealing in raw socket calls or ftp protocol details transferring files with ftplib because the python ftp interface is so easy to uselet' jump right into realistic example the script in example - automatically fetches ( "downloads"and there is also support in the python world for other technologies that some might classify as "client-side scripting,toosuch as jython/java appletsxml-rpc and soap web servicesand rich internet application tools like flexsilverlightpyjamasand ajax these were all introduced early in such tools are generally bound up with the notion of web-based interactions--they either extend the functionality of web browser running on client machineor simplify web server access in clients we'll study browser-based techniques in and hereclient-side scripting means the client side of common internet protocols such as ftp and emailindependent of the web or web browsers at the bottomweb browsers are really just desktop gui applications that make use of client-side protocolsincluding those we'll study heresuch as http and ftp see as well as the end of this for more on other client-side techniques client-side scripting