Сервиси интернета

Клијент-сервер архитектура

Сервиси интернета се реализују преко модела софтверске архитектуре који се назива архитектура клијент-сервер. Тај модел подразумева комуникацију два програма са подељеним улогама:

Неки од најважнијих сервиса интернета су:

Комуникација између клијента и сервера је строго уређена скупом правила који се назива протокол. Поједини сервиси интернета су управо добили назив по протоколу који користе (FTP, Telnet, SSH, итд.).

Израз сервер се често користи и да означи уређај, односно рачунарски систем, чија је превасходна улога да на њему раде различити серверски процеси који треба да пруже услуге већем броју одговарајућих клијентских процеса. У истом контексту се уређај на коме раде одговарајући клијентски процеси назива клијентом. Међутим, таква терминологија није сасвим коректна јер на истом уређају могу радити и серверски и клијентски процеси, па би по тој терминологији исти уређај могао да се означи и као сервер и као клијент. Ипак, када се уређај рекламира као, на пример, 'серверски рачунар', ту се не мисли да он може да извршава само серверске процесе, већ да има такву конфигурацију и перформансе да може да извршава више серверских процеса истовремено и да истовремено опслужује више одговарајућих клијентских процеса у реалном времену.

Неки важнији примери сервиса интернета

Веб (www)

Веб, као сервис интернета, такође примењује архитектуру клијент-сервер, при чему улогу клијента имају добро познати програми - читачи веба (енгл. browser) - као што су Chrome, Firefox, Edge, Opera, Safari и други. Улогу сервера за потребе веба као сервиса имају програми који се називају веб-сервери (енгл. web servers), а као синоними се још користе www-сервери или HTTP-сервери. Познати примери веб-сервера су Apache, Nginx, IIS и др. Веб-сервери се понекад испоручују у пакету са серверским и клијентским програмима за управљање базама података (MySQL, MariaDB) и имплементацијом неког програмског језика за програмирање на вебу (Perl, PHP, Python). Типичан пример су пакети који садрже Apache као веб-сервер, MySQL серверске и клијентске програме за управљање базама података и имплементацију програмског језика PHP, тзв. AMP-пакети (Apache, Mysql, PHP). У зависности од тога да ли су AMP-пакети намењени рачунарима са оперативним системом Windows или Linux, разликују се WAMP и LAMP-пакети. Популарни WAMP-пакети су EasyPHP, XAMPP и други.

Zахтев који клијент (читач веба) шаље серверу (веб-сервер) је заправо адреса ресурса (URL, односно URI) коју корисник уноси у адресно поље читача веба (Слика 1). Ако је адреса валидна, а ресурс на тој адреси доступан (нема прекида везе, корисник има неопходна права да приступи документу итд.), веб-сервер ће клијенту послати одговарајући ресурс; специјално, ако је ресурс HTML-документ, он ће бити преузет (енгл. downloaded) у привремени каталог у власништву читача веба, а потом и приказан у том програму.

Архитектура клијент-сервер на примеру веба као сервиса интернета

Овај сервис омогућава кориснику да, пре свега, приступа хипертекстуалним документима (HTML-документима), тј. документима који садрже референце на друге документе, хипервезе (енгл. link), тако да се из једног HTML-документа, активирањем хипервезе, непосредно прелази у документ на који та хипервеза реферише. Праћењем хипервеза се тако, полазећи из једног HTML-документа, може постепено прелазити у читав низ HTML-докумената од којих сваки претходни садржи хипервезу на следећи. Међутим, веб омогућава да се преко одговарајуће адресе приступи не само HTML-документима, већ било ком ресурсу, односно датотеци произвољног формата (текст, аудио, видео, архива добијена компресијом итд.) који је доступан на вебу.

Хипертекстуални или HTML-документи се још називају веб-страницама, односно страницама на вебу (енгл. web page), док се скуп таквих страница који представља једну логичку целину, има заједнички део адресе (домен) и налази се у оквиру истог веб-сервера назива (веб-)сајтом (енгл. website).

Веб као сервис користи протокол за размену хипертекста (енгл. Hypertext Transfer Protocol, скр. HTTP) и протокол за сигурну размену хипертекста (енгл. HTTP Secure, скр. HTTPS). Главна разлика између протокола HTTP и HTTPS је што потоњи омогућава заштићену комуникацију између читача веба и веб-сервера, тј. подаци се криптују пре преноса и декриптују на одредишту, чиме се обезбеђује заштита приватности и спречава крађа и злоупотреба података које корисник користи како би се пријавио, односно идентификовао, на неком сајту.

Електронска пошта

Електронска пошта, е-пошта или имејл (енгл. e(-)mail) је пре настанка веба свакако био најпопуларнији сервис интернета, мада и данас опстаје, али најчешће у комбинацији са другим сервисима (попут е-поште на вебу). Типичне услуге које пружа овај сервис је слање и пријем електронских порука које могу садржати и прилоге у виду датотека произвољног формата, али ограничене величине. Примери популарних клијената е-поште су Thunderbird, Alpine, а некада популарни Microsoft Outlook Express је у међувремену престао са развојем. Примери серверских програма е-поште (енгл. mail server) су sendmail, Microsoft Exchange Server, Eudora, Zimbra и многи други.

Сервис е-поште користи више протокола у зависности од тога да ли је у питању комуникација између различитих серверских процеса (размена порука између различитих сервера е-поште) или комуникација између серверског и клијентског процеса. Једноставни протокол за размену поште (енгл. Simple Mail Transfer Protocol, скр. SMTP) је пример протокола који се користи за размена поруку између различитих сервера е-поште, док су Поштански протокол (енгл. Post Office Protocol, скр. POP) и Протокол за приступ порукама на интернету (енгл. Internet Message Access Protocol, скр. IMAP) примери протокола које клијенти е-поште користе за преузимање порука са сервера е-поште.

Електронска пошта на вебу

Електронска пошта на вебу (енгл. webmail) је спој два различита сервиса: веба и е-поште. Са становишта корисника клијент овог сервиса је, као у случају веба, било који читач веба захваљујући коме корисник приступа својој пошти као HTML-документу. С друге стране, веб сервер садржи клијент е-поште као веб-апликацију (тј. програм који се извршава на вебу) преко ког се реализује комуникација са сервером е-поште на уобичајени начин. Типичан пример су Gmail, Yahoo! mail и Hotmail који је у међувремену постао Outlook.

Архитектура клијент-сервер на примеру е-поште као сервиса интернета

Брза размена датотека

Брза размена датотека је пример сервиса који је добио назив по протоколу који користи - протоколу за размену датотека (енгл. file transfer protocol, скр. FTP). Овај сервис омогућава кориснику да са свог рачунара преноси датотеке на удаљени рачунар (енгл. upload) на коме има приступ одговарајућем FTP-серверу, као и да са удаљеног рачунара преузима датотеке (енгл. download), али за разлику од других сервиса интернета, FTP је још на самом настанку био прилагођен брзој размени датотека.

Као и HTTP, и протокол FTP не штити податке пре слања, тако да је данас замењен протоколима који криптују комуникацију између FTP-клијента и FTP-сервера, као што су FTPS (FTP-SSL) и SFTP (SSH FTP).

Пример популарних SFTP-клијената су SSH Secure Shell и WinSCP.

Рад на удаљеном рачунару

Рад на удаљеном рачунару (енгл. Remote Desktop Access) је сервис који омогућава кориснику да са локалног рачунара приступи удаљеном рачунару преко мреже и да ради на удаљеном рачунару као да је у питању локални рачунар. Развијено је више протокола за рад на удаљеном рачунару по којима су и одговарајуће имплементације сервиса добиле име: Telnet и SSH. Потоњи је заменио претходни из истог разлога као код замене протокола HTTP протоколом HTTPS, односно замене протокола FTP протоколима FTPS и SFTP: да би се сачувала приватност корисника и спречила крађа идентитета, SSH, за разлику од протокола Telnet, криптује комуникацију између клијента и сервера.

Пример популарних SSH-клијената су SSH Secure Shell и PuTTY.

Телефонирање преко интернета

Телефонирање преко интернета (енгл. Voice over Internet Protocol, скр. VoIP) је сервис који омогућава кориснику да са локалног рачунара обави телефонски разговор користећи протокол интернета (IP). Популарне имплементације овог сервиса су Skype, Viber, WhatsApp итд. За потребе сервиса телефонирања преко интернета је развијено више протокола за рад на удаљеном рачунару, неки су засновани на отвореним стандардима, а неки на власничким стандардима или комбинацији отворених и власничких стандарда. На пример, WhatsApp користи прилагођену верзију протокола XMPP (проширив протокол за размену порука и присуство(вање)), енгл. Extensible Messaging and Presence Protocol), заснованог на отвореном стандарду, док Skype користи власнички протокол — Skype Protocol.

Адресирање уређаја на интернету

Сваки учесник комуникације на интернету, било да је реч о уређају (рачунару/host, рутеру/router, вратницама/gateway, мосту/bridge), серверском или клијентском процесу (програму који се извршава) или ресурсу (датотеци која представља текст, звук, слику, итд.), мора имати адресу која га идентификује и помоћу које се може пронаћи на интернету.

IP-адреса

Уређаји на интернету који користе протокол IP (енгл. Internet Protocol) идентификују се помоћу адреса које се називају IP-адресе. Постоји неколико верзија IP-адреса, тренутно су актуелне верзија IPv4 и IPv6. Верзија IPv4 је тренутно у употреби, али ће у будућности постепено бити замењена верзијом IPv6. Наиме, IPv4 дефинише IP-адресу као бинарну реч дужине 32 бита (односно 4 бајта), што значи да подржава највише 232 adresa. Пошто је 210=1024, укупан број адреса које подржава IPv4 је 232 = 22 · ( 210 ) 3 =4·10243, тј. нешто преко четири милијарде адреса. У пракси се показало да је број расположивих IPv4-адреса недовољан, с обзиром на константан раст броја уређаја повезаних на интернету. IPv6 користи 128 битова за представљање једне IP-адресе, што значи да подржава највише 2128 = ( 232 ) 4 адреса, односно четврти степен укупног броја адреса које подржава верзија IPv4.

IP-адреса, као бинарна реч дужине 4 бајта, се још представља у читљивијем облику као низ од четири ненегативна цела броја раздвојена тачком, при чему је сваки број декадна вредност садржаја одговарајућег бајта IP-адресе. Пошто је бајт дужине 8 бита, у њему се могу регистровати тачно 28=256 различитих вредности (од 0000 00002 до 1111 11112) у опсегу од 0 до 255. На пример, 147.91.76.20 је читљиви облик IP-адресе рачунара на коме се налази сајт Филолошког факултета.

За расподелу IP-адреса на глобалном нивоу (адресни простор на интернету) задужена је IANA (енгл. Internet Assigned Numbers Authority). IANA дели адресни простор (скуп свих расположивих IP-aдреса) тако да њене испоставе (регионални регистри интернета) добијају различите подскупове адреса које даље расподељују (уз финансијску надокнаду) организацијама (попут академских мрежа) или фирмама које се баве пружањем услуге приступа интернету (енгл. Internet Service Provider, скр. ISP). ISP (код нас се одомаћио израз провајдер, мада на енглеском provider значи пружалац услуге уопште, не само приступа интернету) за финансијску надокнаду омогућава приступ интернету, што у пракси значи да корисник, уз финансијску надокнаду, добија привремено на коришћење неку од IP-адреса које поседује ISP. Тако додељена IP-адреса може бити или статичка или динамичка.

Динамичке и статичке IP-адресе. DHCP

По склапању уговора са ISP-ом, корисник, уколико су испуњени одређени предуслови (поседовање потребне опреме и софтвера које у договору обезбеђује или сам корисник или ISP) је у стању да повеже свој рачунар са серверским програмом ISP-а задуженим за доделу IP-адреса.

Типичан пример услуге коју пружа ISP је коришћење кабловског интернета. У том случају је неопходан:

  • хардверски уређај који представља кабловски модем i
  • систем каблирања који комбинује оптичка влакна и коаксијалне каблове, (обично низ таквих каблова који се настављају један на други), а служи за пренос сигнала између ISP-а и кабловског модема.

За саму размену сигнала између кабловског модема и рачунара корисника може се користити мрежни кабл или радио-таласи као бежичан медијум.

Корисник започиње приступ интернету када укључи кабловски модем, чиме се шаље захтев ISP-у за IP-адресом и подацима о подешавањима мреже. Серверски програм ISP-а, који кабловском модему додељује IP-адресу на захтев, назива се DHCP-сервер (енгл. Dynamic Host Configuration Protocol), односно сервер заснован на протоколу за динамичко конфигурисање рачунара у мрежи. DHCP-сервер не мора увек доделити рачунару исту IP-адресу, мада рачунар може да захтева IP-адресу која му је додељена приликом претходног приступа интернету, без гаранције да ће је и добити (јер ју је можда већ добио неки други рачунар). Према томе, IP-адреса рачунара не мора бити унапред одређена и у том случају се назива динамичка IP-адреса.

Статичке и симболичке IP-адресе. DNS

Ако рачунар има унапред одређену IP-адресу која је фиксирана, односно не мења се, таква IP-адреса се назива статичка IP-адреса. Статичка IP-адреса се додељује рачунарима чија је адреса јавна како би се корисницима омогућио лакши приступ серверским програмима на тим рачунарима. То се додатно постиже увођењем симболичке адресе коју могу имати искључиво рачунари са статичком IP-адресом.

На пример, www.fil.bg.ac.rs је симболичка адреса која одговара статичкој IP-адреси 147.91.76.20 рачунара на коме се налази сајт Филолошког факултета.

С обзиром да адресирање на интернету почива на IP-адресама, кад год се употреби симболичка адреса за проналажење или идентификацију рачунара на интернету, симболичка адреса мора да се конвертује у одговарајућу (статичку) IP-адресу. У ту сврху се користи систем имена домена (енгл. Domain Name System, скр. DNS).

Порт

Када се шаље порука неком процесу (клијентском, серверском), с обзиром да на једном уређају може истовремено радити више процеса, било клијентских, било серверских, протокол комуникације и IP-адреса уређаја су неопходни да се пронађе сам уређај и дефинишу правила комуникације, али нису довољни да се идентификује сам процес на том уређају. У ту сврху се сваком процесу који учествује у комуникацији на интернету додељује ненегативан цео број који, у комбинацији са протоколом и IP-адресом уређаја, једнозначно идентификује одговарајући процес. Идентификациони број процеса на уређају представља, у преносном значењу, луку или пристаниште (енгл. port) за поруке које плове интернетом, па се овај термин или не преводи, већ преузима као интернационализам порт, или се преводи у одговарајућем преносном значењу као porta (Цветана Крстев), на основу метафоре по којој се поруке шетају ходником од врата до врата (лат. porta), где се иза сваких врата налази одговарајући процес.

За поједине парове, које чине сервис на интернету и одговарајући протокол, су, де факто, стандардизовани идентификациони бројеви серверских процеса (портови), али администратор рачунара или рачунарске мреже увек може да промени подразумеване портове приликом инсталације или поновног подешавања серверског програма. У наставку су дати примери подразумеваних портова за серверске процесе појединих парова које чине сервис на интернету и одговарајући протокол, више као илустрација него као информације које треба памтити (Табела 1):

Примери подразумеваних портова за серверске процесе појединих парова које чине сервис на интернету и одговарајући протокол
Сервис Протокол Подразумевани порт серверског процеса
веб (www) http 80
веб (www) https 443
брза размена датотека (ftp) ftp 21
рад на удаљеном рачунару (ssh) ssh 22
рад на удаљеном рачунару (telnet) telnet 23
е-пошта (e-mail) SMTP 25
е-пошта (e-mail) POP3 110
е-пошта (e-mail) IMAP 143

URL и URI

URL као апсолутна адреса ресурса на вебу

Једнообразни (униформни) идентификатор ресурса (енгл. Uniform Resource Identifier, скр. URI) jе ниска карактера која:

  • једнозначно одређује (идентификује) одређени ресурс,
  • има тачно одређену синтаксу тако да се сваки ресурс описује идентификатором исте (једнообразне, униформне) структуре.

Постоје две варијанте у којима се URI појављује: као URN и као URL. URN излази из оквира приче о адресирању, тако да о њему овде неће бити речи.

Једнообразни (униформни) локатор ресурса (енгл. Uniform Resource Locator, скр. URL) је URI намењен не само идентификацији већ и проналажењу и представљању ресурса. URL се користи као апсолутна адреса произвољног ресурса на интернету, тј. не само што идентификује ресурс већ одређује његову локацију на мрежи и омогућава да му се директно приступи.

Првобитно су URL користили уређаји на интернету, а данас се посебна врста URL-а, адресе на вебу, користе као адресе које разумеју и размењују људи како би упућивали реферисали на неки ресурс веба (сајт, страницу сајта, слику, аудио или видео датотеку итд.).

Коренски каталог веб-сервера

Приликом инсталације веб-сервера на рачунару потребно је изабрати један каталог који ће представљати коренски каталог веб-сервера (енгл. web root, document root). Тиме се практично дефинише један део спољне меморије рачунара чији је садржај (датотеке и поткаталози коренског каталога веб сервера, као и садржај поткаталога) доступан осталим уређајима рачунарске мреже под одређеним условима. Услови су одређени правима приступа: читање датотеке, уписивање у датотеку, извршавање датотеке као програма, приступ каталогу са могућношћу да се види целокупан његов садржај, приступ појединачним датотекама каталога без могућности да се види шта све каталог садржи, итд.

Према томе, коренски каталог веб-сервера омогућава администратору веб сервера да контролише ком делу спољне меморије и на који начин остали корисници мреже могу да приступе са својих рачунара.

Структура URL-a

URL има фиксирану структуру (Табела 2). Неки делови URL-а су необавезни и они су у Табели 2 обележени црвеном бојом.

Структура URL-a
Назив дела Улога Пример
Шема (протокол) Назив протокола, тј. скупа правила којим се уређује комуникација између клијента и сервера. http или https
Сепаратор (граничник) Раздваја шему (протокол) и адресу уређаја. ://
Адреса уређаја IP-адреса или симболичка адреса уређаја. 147.91.76.20 или www.fil.bg.ac.rs
Сепаратор (граничник) Раздваја адресу уређаја од порта који се користи. :
Порт Порт који се користи за комуникацију између клијента и сервера. 8080 или 80
Коренски каталог сервера / (у стварности је то неки поткаталог изабран приликом инсталације веб сервера, на пример поткаталог C:\Program Files\xampp\htdocs каталога у коме се налази инсталиран или или поткаталог www каталога у коме се налази инсталиран EasyPHP/Apache itd.).
Релативна адреса Путања од коренског каталога сервера до ресурса. misko/flf/iw/iw.html
Сепаратор (граничник) Раздваја адресу HTML-документа од назива сидра #
Назив сидра Једнозначни идентификатор сидра у HTML-документу. hobi
Примери URL-а са IP-адресом рачунара (http://147.91.76.20/misko/flf/iw/iw.html) и симболичком адресом рачунара (http://www.fil.bg.ac.rs/misko/flf/iw/iw.html)

URL омогућава да се приступи директно било ком сидру доступног HTML-документа. На пример, овај одељак припада чланку URL и URI коме се може директно приступити преко апсолутне адресе (URL)

http://www.fil.bg.ac.rs/misko/flf/iw/servisi/servisiInterneta.html#url_uri.

С обзиром да порт није наведен, подразумева се стандардни порт за сервис веб: 80. Другим речима, претходни URL је скраћени запис за URL

http://www.fil.bg.ac.rs:80/misko/flf/iw/servisi/servisiInterneta.html#url_uri.