Serveri on tietokone, joka sijaitsee jossain päin maailmaa. Serverillä voi pyöriä ohjelmia ja sillä on IP-osoite. Kaikki Internet-verkon tietoliikenne kulkee IP-paketteina. IP-osoite on niinkuin kotiosoite, sen perusteella paketit löytävät perille. IP-osoite voi olla muuttuva, mutta servereillä on yleensä kiinteä IP-osoite joka on sidottu domainiin. IP-osoitteiden ja domainien keskinäiseen muuntamiseen on olemassa oma järjestelmä, DNS eli Domain Name System.
HTTP on protokolla, jota selaimet ja WWW-palvelimet käyttävät tiedonsiirtoon. HTTP perustuu siihen, että asiakas (yleensä selain) lähettää HTTP-pyynnön, johon palvelin vastaa. HTTP-pyyntöjä on useita erilaisia. Yleisimmät HTTP-pyynnöt ovat GET ja POST. GET-pyyntö on tarkoitettu sivun hakemiseen serveriltä, POST taas tiedon lähetykseen serverille. HTTP-pyyntöjen erilaisuuden selittämiseen voi käyttää vertausta postin toiminnasta. POST-pyyntö on kuin postipaketti, joka sisältää tietoa tai asioita ja joka toimitetaan vastaanottajalle niin että hän voi sitä käyttää. GET-pyyntö on taas kuin kuriiri, joka käy pyytämässä esimerkiksi http://google.com -sivua, ja saa vastaukseksi HTML-sivun.
Tee Postmanilla GET-pyyntö osoitteeseen http://google.com. Se palauttaa HTML-tiedoston. Huomaat, että HTML-tiedostoilla on tietty rakenne. Ne koostuvat tageista ja niiden sisällä olevista tageista ja teksteistä.
CSS eli Cascading Style Sheets on taas tarkoitettu sivujen tyylittämiseen. Tutustumme lisää CSS:ään kurssin osassa 6. Esimerkiksi tämän kurssisivuston tekstit ja värit on saatu aikaan CSS:llä. Sivuston CSS on usein määritelty omassa .css -tiedostossaan. CSS-koodilla voidaan määritellä jokaiselle HTML-tagille oma tyyli, esimerkiksi tekstin ja taustan väri sekä fontti. Esimerkiksi seuraava koodi tyylittää h1-tagin (iso otsikko) niin että sen tekstin väri on oranssi ja teksti on keskitetty sivun keskelle.
h1 {
color: orange;
text-align: center;
}
Nyt olemme tutustuneet HTML:ään, CSS:ään ja JavaScriptiin. Ne kaikki liittyvät serverin palauttaman koodin näyttämiseen käyttäjälle. Esimerkiksi Postmanilla huomasimme että erilaisissa selaimissa serverin palauttama koodi näkyy erilaisena, Postman ei esimerkiski suorita http://google.com -GET-pyynnön palauttamaa script-tagin sisällä olevaa JavaScript-koodia. Mutta kuka päättää, mitä serveri palauttaa? Esimerkiksi google-hakuahan tehdessä palautus riippuu siitä, millä hakusanoilla käyttäjä on hakenut. Tähän tarvitaan palvelinohjelmointia. Siihen käytetään monia ohjelmointikieliä, esimerkiksi Pythonia, Javaa ja Ruby On Railsia. Ruby on olio-ohjelmointikieli kuten Javakin, ja Rails on Rubyyn tehty web-ohjelmointikirjasto. Palvelinohjelma huolehtii niin tietokannan käytöstä kuin HTTP-pyyntöjen vastaanottamisesta ja niihin vastaamisesta. Tällä kurssilla koodaamme Ruby On Railsia ja seuraavassa osassa teemmekin oman Rails-projektin.