Internet and Web Development Fundamentals

This course is part-one of the nine-part series that starts by taking an in-depth look at how the internet facilitates the movement of data packets across both LANs (Local Area Network) and WANs (Wide Area Network). Students learn how to interpret various protocols such as TCP/IP, HTTP, HTTPs, SMTP and FTP. We examine the entire flow and life-cycle of data-packet movement from origin to destination. The course examines the role of DNS and SMTP servers in routing internet traffic and email transmissions. Mechanism to safeguard the movement of data, such as network routers, ports and firewalls, are also explored.

Students are then introduced to the web development process and planning stages of building websites and complex web applications. We conduct an overview of web hosting infrastructures such as shared, VPS, Dedicated and Cloud hosting solutions through case analysis. We then take a look at the role of Domain name registrars and ICANN (The Internet Corporation for Assigned Names and Numbers). Students learn to register and administer domain names through the GoDaddy domain management console. Management features such as Name Server assignment, auto-renewal, domain privacy, and domain forwarding will be covered.

With first-hand insights into the creation of effective web infrastructures and domain management, students learn to configure local testing servers. This includes installing and configuring WAMP/MAMP (Windows/MAC, Apache, MySQL, PhpMyAdmin) on a PC or MAC system. We discuss the role of each essential service as it applies to testing dynamic, database-driven web applications on a local computing system.

Students then explore the configuration of a live production server using popular cloud hosting providers such as Linode. This includes deployment and administration of Ubuntu on Linux based distributions and essential web services (LAMP Stack - Linux, Apache, MySQL, PhpMyAdmin) on scalable virtual machines. Several remote access tools such as PuTTy and Terminal will be used to administer virtual servers through the use of command lines. Servers will be configured with security in mind, using multi-user accounts, SSH authentication, and file permission management.

Students also learn to install and connect to their virtual machines using remote desktop connection tools such as Tight VNC and Real VNC. The entire Linode management console will be explored to demonstrate how to complete various tasks including: creating backups, server re-sizing, changing root passwords, DNS management, and general administration.

Lastly, the course takes a look at FTP clients and establishing connections from local machines to production servers to upload web content. We will explore the FileZilla interface and provide demonstrations on uploading, deleting and modifying remote server files.