Как компютрите си комуникират чрез Интернет?

За радост, сме запазили нещата, свързани с компютрите сравнително прости. Когато става въпрос за Световния уеб(world wide web) повечето от Интернет страниците са написани на един и същи език – HTML(Hypertext Markup Language), който от своя страна се разпространява чрез HTTP(Hypertext Transfer Protocol). HTTP е най-използваният Интернет език, който позволява на Windows машините например да пеят в хармония с най-новите и велики версии на Linux (До ре ми!). Когато използвате един уеб браузър, специална част от софтуера интерпретира HTTP и зарежда HTML, във вариант, който ние можем да прочетем (видим), като тази страница, написана на HTML може да бъде прочетена навсякъде (телефон, компютър, лаптоп, PDA, таблет и дори игровите конзоли).

Но въпреки, че говорят на един и същи език, различните устройства, които имат достъп до Интернет трябва да имат зададени правила, за да могат да си общуват едно с друго – това е като да се научиш да вдигаш ръка, когато искаш да кажеш нещо в клас. HTTP поставя тези правила за Интернета. Заради тези правила, машината на клиента (примерно вашия компютър) знае, че трябва да инициализира заявката(request) за дадена Интернет страница и изпраща заявката към сървъра.Сървъра е компютър, където уеб сайтовете „пребивават“ – когато напишете някой интернет адрес в браузъра, сървъра получава запитване (request), намира страницата която искате и я изпраща обратно към компютъра Ви, за да я покаже в браузъра.

Дисекция на request/response цикъл (заявка/отговор)
След като вече видяхме всички части, които позволяват на компютрите да общуват помежду си в Интернет, нека да погледнем цикъла на HTTP заявки/отговори с повече детайли. Описвам цикъла с номерирани стъпки, така, че да мога да демонстрирам някои от концепциите по-ефективно.

1. Всеки request/response (заявка/отговор) започва с изписването на URL(Uniform resource locator, или по-известно като уеб адрес) в адрес бара на Интернет браузъра, нещо като http:://www.apple.com. Ако сега отворите браузъра и напишете това в адрес бар-а и натиснете Enter ще отидете на заглавната страница на Apple.
Нещо, което може би не знаете е, че уеб браузъра всъщност не използва URL-ите за неговите заявки към сървъра, те използват Интернет протокол или IP адреси(които функционират на пощенски код, само, че идентифицират сървъри, вместо телефони или адреси).Например IP адреса на Apple е 17.149.160.49

2. Ако отидем в нова страница или нов подпрозорец на браузъра, напишем http://17.149.160.49/ в адрес бара и натиснем Enter – ще получим абсолютно същия резултат – заглавната страница на Apple. Практически http:://www.apple.com действа като прякор на http://17.149.160.49/, но защо и как? Това е така, защото хората са по-добри в запомнянето на думи, дори и по-дълги, отколкото на числа. Системата, която позволява това да работи се нарича DNS, което е цялостен автоматичен указател на всички машини, свързани към интернет. Когато напишем http://www.apple.com в адрес бара и натиснем enter, този адрес автоматично се изпраща към DNS(Domain Name System) сървъра и там се опитва да го асоциира с IP адреса. Буквално има милиони машини, които са свързани с Интернет и не всеки DNS има пълен лист с всички онлайн машини, така че има система, където се препращат заявките на машините към друг сървър, за да изпълни заявката, ако първият DNS няма правилната информация. И така, DNS системата вижда сайта на Apple, намира че той се намира на 17.149.160.49 и изпраща IP адрес обратно към Вашия браузър.Вашата машина изпраща заявка към машината на този IP адрес специфично и чака отговор. Ако всичко мине гладко, сървъра изпраща кратко съобщение към клиента със съобщение, че всичко е ок, последвано от самата страница. Този тип съобщение се намира в HTTP header-а (главата на HTTP).

3. Ако се опитате да напишете http://www.joniscool.co.uk/jonlane/ в адрес бара ще ви излезе грешка 404 error returned. Ако се опитате с различни имена на измислени уеб страници ще видите, че всички се връщат с тази грешка. Това е така, понеже уеб разработчиците са оставили уеб сървъра да връща техните страници за грешка по подразбиране, други пък кодират собствени страници за грешки, които да се появяват в дадените случаи. И накрая малко повече за URL – обикновено първият URL, на който отивате на една страница няма допълнителни окончания накрая (http://www.google.com/) и после някои от вътрешните страници може и да имат, може и да нямат. Вие винаги достъпвате реални файлове, но понякога уеб разработчиците са настроили сървъра да бе показва разширен URL адрес – често изглежда по спретнато, лесно за запаметяване, което води до по-добро изживяване за потребителя.

Типове съдържание

Сега ще видите различните типове на съдържание, които може да очаквате в Интернет. Те са групирани в 4 типа – чист текст, уеб стандарти, server-side езици(от страна на сървъра).

  • Чист текст – в ранните дни на Интернет, преди дори да има уеб стандарти и плъгините да дойдат, Интернет се използваше основно за картинки и чист текст – файлове с разширение „.txt“ или подобно. Когато файл с чист текст е засечен в Интернет, браузърите все още ще го покажат такъв, какъвто е  – без да е включен никаква обработка. Все още има сайтове на университети, които са просто чист текст.
  • Уеб стандарти – основните уеб стандарти, които изграждат World wide web са три най-използвани – HTML, CSS и Javascript.
    – Hypertext Markup Language всъщност е много добре име, за това за което се използва. HTML се използва за разделяне на документа, обособяване на неговото съдържание и структура и дефиниране на значението на всяка една част(хедър, параграфи, листинги и др.). Той използва елементи за идентифициране на различни компоненти от страницата.
    – Cascading Style Sheets Ви дава пълен контрол над това как отделните елементи са стилизирани и позиционирани. Лесно е, използвайки стилизиращи декларации да сменим всички параграфи да бъдат с двойна височина на линията (line-height: 2em;), или да направим всички Хединги от 2 ниво със зелен цвят (color: green). Има хиляди предимства на отделянето на структурата на документа от стилизирането му.
  • Javascript предоставя на страницата или приложението динамични функции. Може да пишеш и програми на Javascript, които ще се изпълняват в браузъра, без да изискват някакъв специален софтуер да бъде инсталиран. JavaScript Ви позволява да добавяте голяма интерактивност и динамика към Вашия уеб сайт, но и той все пак си има своите граници, което ни води до server -side езици за програмиране и динамични страници.

Server-side езици

Понякога, когато сърфирате в Интернет, ще попаднете на страници, които нямат .html разширение – то може също така да бъдe .php, .asp, .aspx, .jsp или някое друго странно разширение. Всички те са примерно за Server-side уеб технологии, които могат да бъдат използваниза създаването на интернет странии със секции, които се променят спрямо даннте, дадени на сървъра, преди страницата да бъде изпратена към браузъра за визуализиране. Например списък с фулми може да даде пълна информация с всички филми, или да покаже само за определен ден, седмица, месец.

Формати, които изискват други приложения или plugins

Уеб браузърите са екипирани да разпознават и показват определени технологии, като уеб стандартите и затова ако поискате URL, който сочи към файлов формат, брауърът не може да го интерпретира, или страница, която съдържа технология, изискваща plugin, той ще бъде или свален на компютъра или отворен, посредством plugin, ако браузърът го има инсталиран. Например:

  • ако се натъкнете на Word документ, на Excel таблица или PDF, ZIP, RAR, PSD или други подобни файлове, които браузърът не разбира, тогава браузърът ще попита дали искате да свалите файла или да го отворите, освен че второто ще предизвика файла да бъде свален и после да бъде отворен от програма, която го разбира и е вече инсталирана на компютъра.
  • ако попаднете на страница, която съдържа Flash, Java applet или музика и видео файлове, които не разбира, браузърът ще ги пусне, само със специален Plugin, който е бил инсталиран. Ако не, обикновено страницата ще ви даде линк за инсталиране на дадения Plugin, или файлът ще се свали и ще търси програма в компютъра, която да се справи с файла.

Статични или Динамични уеб страници

Каква е разликата между статичен и динамичен уеб сайт? Подобно на кутия с бонбони – всичко е до пълнежа:

Статичен уеб сайт е сайт, на който съдържанието (HTML и графичното съдържание) е винаги статично – то се предоставя на всеки посетител по един и същи начин, освен ако човека, който е създал уеб страницата не реши ръчно да промени копието на сървъра – точно това наблюдаваме дотук в по-голямата част от статията.

В динамичния уеб сайт, съдържанието на сървъра е подобно, но също така има и динамичен код, вместо прост HTML. Динамичният код може да покаже различни данни, в зависимост от информацията, като например час от деня, потребител, датата и данните за търсене, които са му подадени. Нека да погледнем пример – отидете в www.amazon.com във Вашия брузър и потърсете 5 различни продукта. Амазон не ви изпраща 5 различни страници, изпраща ви същата страница 5 пъти, просто информацията се пълни динамично всеки път. Тази различна информация се пази в база данни, която изкарва съответната информация, когато бъде поискана и я дава на уеб сървъра да я сложи в динамичната уеб страница.

Друго нещо, което трябва да забележите е, че този специален софтуер трябва да бъде инсталиран на сървъра, за да бъде създадена динамичната уеб страница. Като се има предвид, че нормалния статичен HTML е с разширение .html и може да бъде пуснат на браузъра без допълнителна помощ, то тези файлове съдържат динамичен код, освен HTML и биват запазени с други разширения, които казват на сървъра, че имат нужда от допълнителна обработка преди да бъдат изпратени на клиента(като вкарване на данни от базата данни). PHP файловете например завършват на .php.

Докато сървъра на една динамична уеб страница зарежа и обработва динамичния код, тя все още изпраща HTML към клиента. Клиента няма нужда от plugin за тези специални файлови разширения, защото клиента все още получава това, което изглежда като HTML файл.

Има много динамични езици и framework, от които да избираме – вече споменахме PHP, други примери са Python, Ruby on Rails, ASP.NET и Coldfusion. В края на краищата всички тези технологии имат почти същите възможности, като да общуват с бази данни, валидиране на вкараната във форми информация и др, но всички те правят нещата по малко различен начин и имат своите предимства и недостатъци.
Накрая всичко се свежда до това на Вас кое ви допада най-много.

Обобщение

Това е основното за „задкулисната“ обиколка на Как работи Интернета. Тази статия докосва само повърхността на много теми, но е полезна тъй като ги показва в перспектива, как са свързани и как работят заедно. Има още много, което можете да научите за синтаксиса на езиците като HTML, CSS и JavaScript и там ще отидем по-натам – следващата статия ще се фокусира на HTML, CSS и JavaScript „уеб стандарти“, модела им за разработка и ще погледнем малко код.

източник: http://docs.webplatform.org/
превод: Светла Величкова

 

Последни публикации