Server-Side Scripting/Introduction

This lesson introduces server-side scripting.

Objectives and Skills
Objectives and skills for this lesson include:
 * Understand the purpose of server-side scripting
 * Evaluate server-side scripting options
 * Select a programming language and framework for the course
 * Establish a server-side scripting test environment

Readings

 * 1)  Server-side scripting
 * 2)  Docker (software)
 * 3)  AWS Elastic Beanstalk

Go

 * 1) YouTube: Go / Golang Crash Course

Node.js (Express)

 * 1) YouTube: Express JS Crash Course
 * 2) YouTube: How to Run Node.js in VS Code From Scratch

PHP

 * 1) YouTube: Introduction To PHP
 * 2) YouTube: PHP Introduction

Python (Flask)

 * 1) YouTube: Flask Tutorial #1 - How to Make Websites with Python
 * 2) YouTube: Python Flask From Scratch

Examples

 * /Go/
 * /Java (JSP)/
 * /Node.js (Express)/
 * /PHP/
 * /Python (FastAPI)/
 * /Python (Flask)/
 * /Ruby/

Activities

 * 1) Research server-side scripting languages, including Go, Java, .NET Core, Node.js (Express), PHP, Python (FastAPI or Flask), and Ruby. Select a programming language to use for this course. If unsure, Node.js (Express) and Python (FastAPI or Flask) are currently popular choices for a first server-side scripting language. Use the Examples link above for your selected programming language and use one of the free online IDE links provided to try running the Hello World program.
 * 2) Modify the example Hello World program to instead display , where   is your name. Include comments at the top of the program and test the program to verify that it works correctly.
 * 3) Research free downloadable tools for your selected programming language (interpreter/compiler, IDE, etc.). Consider downloading and installing a development environment on your system. Visual Studio Code is recommended. If you set up your own development environment, test the environment using your Hello Name program written above.
 * 4) Research  Docker (software). Consider setting up a Docker environment to run and test your server-side scripts.
 * 5) * Express: Docker/Express
 * 6) * Flask: Docker/Flask
 * 7) * Go: Docker/Go
 * 8) * Java: Docker/Tomcat
 * 9) * PHP: Docker/PHP
 * 10) * Ruby: Docker/Ruby
 * 11) Research cloud deployment options for your selected programming language. Consider setting up a cloud solution to run and test your server-side scripts.
 * 12) * Docker - AWS: Elastic Beanstalk Docker Configuration
 * 13) * Express - AWS: Deploying an Express application to Elastic Beanstalk
 * 14) * Flask - AWS: Deploying a flask application to Elastic Beanstalk
 * 15) * Go - AWS: Creating and deploying Go applications on Elastic Beanstalk
 * 16) * Java - Creating and deploying Java applications on Elastic Beanstalk
 * 17) * PHP - AWS: Creating and deploying PHP applications on Elastic Beanstalk
 * 18) * Ruby - Creating and deploying Ruby applications on Elastic Beanstalk

Lesson Summary

 * Server-side scripting is a technique used in web development which involves employing scripts on a web server which produce a response customized for each user's (client's) request to the website.
 * Scripts can be written in any of a number of server-side scripting languages that are available.
 * Server-side scripting is distinguished from client-side scripting where embedded scripts, such as JavaScript, are run client-side in a web browser, but both techniques are often used together.
 * Server-side scripting is often used to provide a customized interface for the user.
 * Server-side scripts can be used to control access rights to the specific user.
 * Server-side scripting enables the website owner to hide the source code that generates the interface, whereas with client-side scripting, the user has access to all the code received by the client.
 * A down-side to the use of server-side scripting is that the client needs to make further requests over the network to the server in order to show new information to the user via the web browser.
 * These requests can slow down the experience for the user, place more load on the server, and prevent use of the application when the user is disconnected from the server.
 * Server-side scripts are completely processed by the servers instead of clients. When clients request a page containing server-side scripts, the applicable server processes the scripts and returns an HTML page to the client.
 * Sever-side scripting is the best option for anything that requires dynamic data to be loaded, such as user validation, saving data entered by a user, online reservations, etc.
 * Some popular server-side languages include Node.js, PHP, Python (Flask), Ruby, Java, C#, and many more.

Key Terms

 * backend development
 * Focuses on the functionality and logic powering the application. The technology used in the backend is never directly seen by users.


 * client
 * A piece of computer hardware or software that accesses a service made available by a server as part of the client–server model of computer networks.


 * HTTP
 * The Hyper Text Transfer Protocol (HTTP) is the protocol used for web client-server communication by sending and receiving requests and responses.


 * Platform as a service (PaaS)
 * A platform based service that provides a platform allowing customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app.


 * scripting language
 * A programming language for a special run-time environment that automates the execution of tasks.


 * server
 * A piece of computer hardware or software (computer program) that provides functionality for other programs or devices.


 * server-side web framework
 * A set of libraries and tools that help build a web application. Some server-side frameworks include Symfony (PHP), Django (Python), and Express (Node.js/JavaScript). These frameworks work directly with HTTP requests and responses, route requests to the appropriate handler, simplify database access and management, and URL mapping.


 * web application
 * Is application software that runs on a web server, unlike computer-based software programs that are run locally on the operating system of the device.