Eng:Server

A server is a computer running specific software which provides some service to computers on a network. In context of the internet, a server stores all the content and code required to run a website. Your computer, the client, sends a request to the server, and the server responds with the data needed (the webpage, for example).

To share a server on the internet, the IP Address must be found and for user-friendly access a domain name can be registered through a registrar. Without a domain name, a server must be accessed solely through the IP address which is difficult to memorize. Requests sent to a domain name are associated with an IP address in a DNS server after the domain name is registered.

Data Transfer Protocols
Different protocols are used for different types of services that servers share with clients. A protocol in terms of networking is a standardized format for transferring data from one computer to another and for it to be properly examined. The most common protocol is Internet Protocol, which is the proper format for transferring data over the Internet.

Data is transferred in the form of a packet, or a bound package of data that travels together on wiring. Packets rarely are ever separated, but can sometimes be lost throughout the series of forwarding servers on the Internet. When a packet is received by a server, the packet has header information included which tells about the sender's IP address, the destination IP address, and the port number on which the data is meant to communicate with. If the server receives a packet intended for it, it will interpret it and send back any data to the client computer.

Scratch Server
The Scratch servers are stored at MIT and were upgraded in 2012 in courtesy of Dell. Since then, the Website has been significantly faster, and additional servers and maintenance have occurred since the donation.

The servers used to run a customized system called ScratchR, and the forums use FluxBB both are written in PHP. In Scratch 2.0, the forums run on DjangoBB, a Python-based forum system. The main site is a completely rewritten system based on Django.

Downtime
Sometimes, the Scratch Team has trouble with the servers and has to reboot them (servers are notoriously shaky and often stop functioning spontaneously) or solve an issue. During these periods, a message from the Scratch Team is displayed instead of the page, stating the issue. Normally, the servers are back within hours or sometimes minutes. Usually, the community is warned beforehand, though in some cases such as the Hurricane Sandy power outage, no warning was received.

Recent Downtimes

 * March 19, 2013 Server room electricals upgrade
 * March 29, 2015 Server upgrades
 * April 16, 2015 Bug fixes

Past Downtimes

 * August 27-28th 2011 The Scratch Website was set to read-only and the forums were shut down due to Hurricane Irene
 * November 29, 2012 The Scratch Website was down for several hours due to a power outage in Cambridge.
 * September 5, 2013