Revision b6d309cc-ea5a-41cc-a114-04f39b50437e - Software Engineering Stack Exchange

## Background ##

Web development is all about communication. In this case, communication between 2 parties, over the HTTP protocol:

 - The **Server** - This party is responsible for **serving** pages.
 - The **Client** - This party *requests* pages from the **Server**, and displays them to the user. On most cases, the client is a **web browser**.
 - The **User** - The user *uses* the **Client** in order to surf the web, fill in forms, watch videos online, etc.

Each side's programming, refers to code which runs at the specific machine, the server's or the client's.

## Basic Example ##

 1. The **User** opens his web browser (the **Client**).
 2. The **User** browses to http://google.com.
 3. The **Client** (on the behalf of the **User**), sends a request to http://google.com (the **Server**), for their home page.
 4. The **Server** then acknowledges the request, and replies the client with some meta-data (called *headers*), followed by the page's source.
 5. The **Client** then receives the page's source, and *renders* it into a human viewable website.
 6. The **User** types <kbd>Stack Overflow</kbd> into the search bar, and presses <kbd>Enter</kbd>
 7. The **Client** submits that data to the **Server**.
 8. The **Server** processes that data, and replies with a page matching the search results.
 9. The **Client**, once again, renders that page for the **User** to view.

## Programming ##
### Server-side Programming ###
Server-side programming, is the general name for the kinds of programs which are run on the **Server**.
#### Uses

 - Process user input.
 - Display pages.
 - Structure web applications.
 - Interact with permanent storage (SQL, files).

#### Example Languages

 - PHP
 - ASP
 - Nearly any language (C++, C#, Java). But these were not designed specifically for the task.

### Client-side programming

Much like the server-side, Client-side programming is the name for all of the programs which are run on the **Client**.

#### Uses

 - Make interactive webpages.
 - Make stuff happen dynamically on the web page.
 - Interact with temporary storage, and local storage (Cookies, localStorage).
 - Send requests to the server, and retrieve data from it.

#### Example languages

 - JavaScript (primarily)
 - HTML
 - CSS

AltStyle によって変換されたページ (->オリジナル) /