If you're seeing this message, it means we're having trouble loading external resources on our website.

Ако си зад уеб филтър, моля, увери се, че домейните *. kastatic.org и *. kasandbox.org са разрешени.

Основно съдържание

Разработване на отворен протокол

Многото протоколи, които захранват интернет, са стандартизирани и отворени. Но какво всъщност означава това и защо е толкова важно?

Необходимостта от стандартизация

Мрежовите протоколи описват как компютрите могат да комуникират един с друг.
Нека си представим свят преди съществуването на интернет протоколите, свят, в който един компютър иска да изпрати съобщение до друг компютър.
Компютър А изпраща това 2-байтово съобщение:
1 001 000 1 101 001
Това съобщение представлява двете букви "Hi" (в превод "Здравей"), които са кодирани в двоичен код с помощта на стандарта UTF-8.
За съжаление, компютър Б смята, че получава число и интерпретира съобщението като десетичното число 18537.
Илюстрация на два компютъра, които се опитват да комуникират един с друг. Първият компютър е означен с "Hi" ("Здравей") в мисловен балон над него. Стрелка отива от първия компютър към втория компютър и е обозначена с двоичен низ "01001000 01101001". Вторият компютър е показан с "18537" в мисловен балон над него.
Всеки от компютрите може да следва протокол за това как да комуникира, но те не следват същия протокол, така че опитът им за комуникация е неуспешен. 🙁
Ето защо стандартизацията е толкова важна за технологиите, захранващи интернет. Когато компютрите имат съгласие относно начина, по който ще изпращат съобщения един на друг, те могат да разберат съобщенията, които получават.
Например двата компютъра могат да постигнат съгласие да следват прост протокол, където първият байт показва типа данни, които се изпращат. Първият байт от 00000000 указва число, а първият байт от 00000001 указва низ от букви.
Компютър А вече може да изпрати това съобщение:
1 1 001 000 1 101 001
Компютър Б получава съобщението, проверява първия байт, за да открие какъв тип данни има в съобщението, а след това успешно декодира останалата част от съобщението.
Компютрите комуникират успешно! 😀
Илюстрация на два компютъра, които се опитват да комуникират един с друг. Първият компютър е означен с "Hi" ("Здравей") в мисловен балон над него. Стрелка отива от първия компютър към втория компютър и е обозначена с двоичен низ "00000001 01001000 01101001". Вторият компютър е показан с "Hi" ("Здравей") в мисловен балон над него.
След като този протокол вече е записан в документ и другите мрежови администратори се съгласят, че това е разумен протокол, този протокол се счита за стандарт. Всеки два компютъра биха могли да следват този стандарт, за да комуникират един с друг, а не само първоначалните два компютъра.
Интернет протоколите са доста по-сложни от този прост протокол, разбира се, тъй като има много подробности за документиране относно сложния процес на комуникация между различни видове устройства.

Колко е важно да бъдеш отворен

Отворен (несобствен) протокол е този, който не е собственост на конкретна компания и не е ограничен до продуктите на конкретна компания.
Протоколите в интернет стека са отворени, така че всяко компютърно устройство може да следва протокола, за да се присъедини към глобалната мрежа. Не е нужно да искаме разрешение да следваме протоколите, не е нужно да купуваме конкретен хардуер и не е нужно да плащаме пари на компанията, която е създала протокола. Просто трябва да прочетем стандарта и да се уверим, че компютърното устройство следва този стандарт правилно.
За разлика от тях, някои комуникационни протоколи са собствени. Пример за това е Skype, приложение за гласови повиквания, което използва свой собствен собствен протокол за изпращане и получаване на гласови повиквания. Протоколът на Skype не е публично описан никъде и приложението Skype е със затворен код. Това прави много трудно за всеки, който се намира извън Microsoft (собственикът на Skype), да разработи приложения, които могат да изпращат или получават Skype обаждания. start superscript, 1, end superscript
Създателите на интернет са направили протоколите отворени нарочно. Винт Серф, съавтор на TCP/IP протоколите, казва това за тяхното развитие:
"Имахме теорията, че ако просто посочим как ще изглеждат протоколите и какъв софтуер трябва да се напише, всички, които искат да изградят част от интернет, ще го направят и ще намерят хора, които биха искали да се свържат с тях. Тогава системата би растяла органично, защото няма да има централен контрол. И точно това се случи." squared

Спецификации на отворени стандарти

За всеки протокол, който е едновременно стандартизиран и отворен, има публично достъпен документ, описващ протокола (често наричан „спецификация“).
🔍 Виж тази HTTP спецификация с дължина 88 страници и прегледай няколко раздела.
Тази спецификация толкова непосилна ли е за теб, колкото е за мен? Спецификациите не са написани за обикновения уеб потребител. Те дори не са написани за обикновения разработчик на софтуер. Те са написани за инженери, които разработват нови приложения, изградени върху протокола, и се нуждаят от дълбоко разбиране за това как трябва да работят нещата.
Спецификациите могат да се променят с течение на времето. Понякога има малки грешки, които трябва да бъдат коригирани, а друг път са необходими големи актуализации за допълнително изясняване на поведението или описание на нова функция. Официалната TCP спецификация е написана през 1981 година и оттогава са направени 39 корекции и 4 спецификации от множество страници, които изясняват протокола.
Понастоящем спецификациите за интернет протоколите се поддържат от Работната група за интернет инженерство (Internet Engineering Task Force). IETF е комитет по отворени стандарти, който предлага усъвършенстване на съществуващите протоколи и предлага изцяло нови протоколи. Комитетът е съставен от представители на цялата интернет индустрия и е отворен за участие от всеки, който има мнение за това как трябва да работи интернет.
Езиците на световната мрежа също са отворени стандарти с онлайн спецификации. HTML стандартът се поддържа от общността WhatWG. CSS има много спецификации и се поддържа от W3C. JavaScript се основава на стандарта ECMAScript.
Общностите на интернет стандартите имат за цел да създават стандарти, които отразяват разнообразните нужди на приложенията, които работят върху интернет, и да документират тези стандарти в ясни спецификации, които позволяват на всяко компютърно устройство да комуникира и да си сътрудничи онлайн.
🤔 Ако имаш опит в разработването на уеб страници с HTML/CSS/JavaScript, какво ти беше най-трудно? Ако можеш да предложиш разширение за тези езици, което би улеснило уеб разработката, какво би било то?

🙋🏽🙋🏻‍♀️🙋🏿‍♂️Имаш ли въпроси по тази тема? С радост ще ти отговорим—просто задай въпроса си по-долу!