# Key Terms
**User** - the person using your website, program or application. For most of your life, you have been the User.
**Client** - the tool or application they use to see or work with your website, program or application. Example clients are Google Chrome, Microsoft Outlook or Discord.
**Developer** - the person creating the website, program or application. In this course you are no longer the User, you are the Developer.
**Server** - the computer that holds the information and code that operates your website, program or application. Your server is usually someplace else in the world, and you have to log into it to work with it.
**IDE (Integrated Development Environment)** - officially speaking, an IDE is a client that you use to connect to your Server. In our course we use Visual Studio Code Server, a browser-based client that lets you connect to Mr. Windsor's server. It is where you will be doing most of your work developing your website, program or application, connecting you to your Server.
# Client-Side Processing
If you don’t want the server to do the work, make the Client (browser, FTP Client, etc.) do the work. This is called **Client-Side Processing**. Nearly every basic static website uses Client-Side Processing.
1. *A Server receives the GET request from the Client, and sends data.* It may send an HTML file, an mp3 file, a JPG file, or other such data. It may also send an accompanying CSS file, which tells the Client how to interpret the files being sent.
2. *The Client-Side takes all that data and interprets it directly on the device.* The Server never processes a thing. A server may send “Cookies” to the Client-Side that includes data for the Client to process so that the Server doesn’t have to, such as preferred settings.
3. If an error occurs, it only messes up on the Client Side.
# Server-Side Processing
If you need to pull data that is stored on the server, or accessible someplace else on the Internet, you will likely need Server-Side Processing. Oftentimes used for securely stored information that you don’t want to transmit. Most dynamic websites use Server-Side Processing to some extent.
1. *The Client sends a GET request to the Server, oftentimes with specific parameters*.
2. *The Server takes that GET request and connects it to data it has access to*, but doesn’t send the data right away. Instead, it processes the data in a way that was requested by the Client.
3. *The Server sends the results, not the original data*.
4. *Data can be also be added to or edited when its stored on the Server*. The Client sends a POST, PUT or DELETE request to the Server, asking it to do something to the data using new data the Client sends. This oftentimes includes authentication to ensure the Client is allowed to make the request. The Server takes the parameters from the POST, PUT or DELETE request and stores it appropriately to its data. The Server sends a message back indicating whether or not it was successful which may include similar data to what would be sent for a GET request.
5. If an error occurs, it messes up the Server Side’s processing ability, which may in turn affect the Client.