Architecture of the web Client Request Server Response retrieved or generated web page
Activities on the Client Generate a request Manage loading of web content Translates Web Pages into DOM Render HTML, CSS, Images Renders SVG Graphics interpret JavaScript, VBScript Manipulate the DOM using JavaScript, VBScript Stores Cookies, Bookmarks, History, Form Data and local datastores AJAX requests using JavaScript, VBScript Maintains “sandbox” security (SOP, CORS) Interprets XML+XSLT A container for video and audio codecs A container for Java Applets Client
Activities On The Server Listens for Requests Loads modules in mods-enabled Translates directory refs in sites-enabled (root directory for system and per-user web accounts) Moves uploaded files into /tmp Passes QUERY_STRING, par Sends the output of the following Requests files from the OS Returns error page if the file is not found Requests execution of CGI scripts by the OS Interprets PHP Logs web page access and errors Requests JSP (Java) execution from a secondary server Server
Activities On The Server Operating System: port 80 The Server DOES NOT talk directly to an SQL Database Engine!!! Communication with a database is done either through the PHP-MYQL library or through a library in some other server based language such as Java, Python, Ruby, PERL or some variation of C. All of the above can also talk to the OS to read and write files. The database does not have to be resident on the same machine CSS, Script, Images or other included files in a web page are loaded by the Client, NOT the server. Apache or IIS Server mod-php mod-ruby mod-cgi jsp redirect
n-Tier Client/Server Request Response Database Server JSP Server Apache or IIS Server mod-php mod-ruby mod-cgi jsp redirect Operating System: port 80 Request Response Local Database JSP Server
Interaction with the File System Request for file Request Apache or IIS Server File or Error code Request for Error Page PHP File request for include or data file handle PHP Output Response File handle mod-php
Interaction with the Database Library function call (Java, PHP) using sockets for communication Client Result Set, record count or errror code library function call Apache or IIS Server Request with form data Result Set, record count or errror code mod-php Response