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
- See also: Computer Science#Ports and Packets
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.
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.
- Main article: Scratch Server Internal Error
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.
- March 19, 2013
— Server room electricals upgrade
- March 29, 2015
— Server upgrades 
- April 16, 2015
— Bug fixes
- August 27-28th 2011
- November 29, 2012
— The Scratch Website was down for several hours due to a power outage in Cambridge.
- September 5, 2013