Selain on ohjelmistosovellus, jota käytetään World Wide Webin sisällön, kuten verkkosivujen, kuvien, videoiden ja muiden tiedostojen, etsimiseen, hakemiseen ja näyttämiseen. Asiakas-palvelin-mallissa selain on tietokoneella ajettava asiakasohjelma, joka ottaa yhteyttä WWW-palvelimeen ja pyytää tietoja. Web-palvelin lähettää tiedot takaisin Web-selaimelle, joka näyttää tulokset tietokoneella tai muulla Internet-yhteensopivalla laitteella, joka tukee selainta.
Tämän päivän selaimet ovat täysin toimivia ohjelmistokokonaisuuksia, jotka pystyvät tulkitsemaan ja näyttämään HTML-verkkosivuja, sovelluksia, JavaScriptiä, AJAX:ia ja muuta Web-palvelimilla ylläpidettyä sisältöä.
Monissa selaimissa on liitännäisohjelmia, jotka laajentavat ohjelmiston ominaisuuksia niin, että sillä voidaan näyttää multimediatietoa (myös ääntä ja videokuvaa), tai selaimella voidaan suorittaa tehtäviä, kuten videoneuvotteluita, suunnitella verkkosivuja tai lisätä selaimeen phishing-suodattimia ja muita tietoturvaominaisuuksia.
-
Käyttäjän käyttöliittymä: Käyttöliittymä on tila, jossa käyttäjä on vuorovaikutuksessa selaimen kanssa. Siihen kuuluvat osoitepalkki, takaisin- ja seuraava-painikkeet, kotipainike, päivitys- ja pysäytyspainike, kirjanmerkkivalinta jne. Kaikki muut osat, paitsi ikkuna, jossa pyydetty verkkosivu näytetään, kuuluvat sen alle.
-
Selainmoottori: Selainmoottori toimii siltana käyttöliittymän ja renderöintimoottorin välillä. Eri käyttöliittymistä tulevien syötteiden mukaan se kysyy ja muokkaa renderöintimoottoria.
-
Renderöintimoottori: Renderöintimoottori on nimensä mukaisesti vastuussa pyydetyn verkkosivun renderöinnistä selaimen näytöllä. Renderöintimoottori tulkitsee CSS:llä muotoillut HTML- ja XML-dokumentit sekä kuvat ja luo käyttöliittymässä näkyvän ulkoasun. Liitännäisten tai laajennusten avulla voidaan kuitenkin näyttää myös muunlaisia tietoja.
Eri selaimet käyttävät erilaisia renderointimoottoreita:
- Internet Explorer: Trident
- Firefox & muut Mozilla-selaimet: Gecko
- Chrome & Opera 15+: Blink
- Chrome (iPhone) & Safari: Webkit
-
Verkkoyhteydet: Selaimen komponentti, joka hakee URL-osoitteita käyttämällä yleisiä Internet-protokollia HTTP tai FTP. Verkkokomponentti käsittelee kaikkia Internet-viestintään ja tietoturvaan liittyviä näkökohtia. Verkkokomponentti voi toteuttaa haettujen asiakirjojen välimuistin verkkoliikenteen vähentämiseksi.
-
JavaScript-tulkki: Se on selaimen komponentti, joka tulkitsee ja suorittaa verkkosivustoon upotetun javascript-koodin. Tulkitut tulokset lähetetään renderöintimoottorille näyttöä varten. Jos skripti on ulkoinen, resurssi haetaan ensin verkosta. Parser pitää odottamassa, kunnes skripti on suoritettu.
-
UI Backend: UI-backendiä käytetään peruswidgettien, kuten valintaruutujen ja ikkunoiden, piirtämiseen. Tämä backend paljastaa yleisen käyttöliittymän, joka ei ole alustakohtainen. Sen alla käytetään käyttöjärjestelmän käyttöliittymämenetelmiä.
-
Data Persistence/Storage: Tämä on pysyvyyskerros. Selaimet tukevat tallennusmekanismeja, kuten localStorage, IndexedDB, WebSQL ja FileSystem. Se on pieni tietokanta, joka luodaan sen tietokoneen paikalliselle asemalle, johon selain on asennettu. Se hallinnoi käyttäjän tietoja, kuten välimuistia, evästeitä, kirjanmerkkejä ja asetuksia.
Tärkeää on huomata, että selaimissa, kuten Google Chromessa, jokainen välilehti toimii erillisessä prosessissa (useita renderöintimoottorin instansseja).
Kaikki välilehdet toimivat erillisessä prosessissa.