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

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość

Rozwój otwartego protokołu

Wiele protokołów wykorzystywanych w Internecie jest ustandaryzowanych i otwartych. Ale co to właściwie oznacza i dlaczego jest to takie ważne?

Potrzeba standaryzacji

Protokoły sieciowe opisują sposób, w jaki komputery mogą się ze sobą komunikować.
Wyobraźmy sobie świat sprzed istnienia protokołów internetowych, świat, w którym jeden komputer chce wysłać wiadomość do innego komputera.
Komputer A wysyła tę 2-bajtową wiadomość:
01001000 01101001
Ta wiadomość reprezentuje dwie litery "Hi" zakodowane w postaci binarnej przy użyciu standardu UTF-8.
Niestety, komputer B myśli, że otrzymuje liczbę i interpretuje wiadomość jako liczbę 18537 w systemie dziesiętnym.
Ilustracja przedstawiająca dwa komputery próbujące się ze sobą skomunikować. Pierwszy komputer jest pokazany z napisem "Hi" w dymku nad nim. Strzałka biegnie od pierwszego do drugiego komputera i jest oznaczona ciągiem binarnym "01001000 01101001". Drugi komputer jest pokazany z napisem "18537" w dymku nad nim.
Każdy z komputerów może postępować zgodnie z protokołem dotyczącym sposobu komunikacji, ale nie postępują zgodnie z tym samym protokołem, więc ich próba komunikacji kończy się niepowodzeniem. 🙁
Dlatego właśnie standaryzacja jest tak ważna dla technologii wykorzystywanych w Internecie. Kiedy komputery zgadzają się co do sposobu, w jaki będą wysyłać do siebie wiadomości, mogą zrozumieć wiadomości, które otrzymują.
Na przykład, dwa komputery mogą zgodzić się na prosty protokół, gdzie pierwszy bajt wskazuje typ danych, który jest wysyłany. Pierwszy bajt o rozmiarze 000000 oznacza liczbę, a pierwszy bajt o rozmiarze 00000001 oznacza ciąg liter.
Komputer A może teraz wysłać tę wiadomość:
00000001 01001000 01101001
Komputer B odbiera wiadomość, sprawdza pierwszy bajt, aby dowiedzieć się, jakiego typu dane znajdują się w wiadomości, a następnie pomyślnie dekoduje pozostałą część wiadomości.
Komputery nawiązały udaną komunikację! 😀
Ilustracja przedstawiająca dwa komputery próbujące się ze sobą komunikować. Pierwszy komputer jest pokazany z napisem "Hi" w dymku nad nim. Strzałka biegnie od pierwszego do drugiego komputera i jest oznaczona ciągiem binarnym "00000001 01001000 01101001". Drugi komputer jest pokazany z napisem "Hi" w dymku nad nim.
Kiedy taki protokół zostanie udokumentowany, a inni administratorzy sieci zgodzą się, że jest to rozsądny protokół, jest on uznawany za standard. Dowolne dwa komputery mogą komunikować się ze sobą według tego standardu, nie tylko te dwa komputery.
Protokoły internetowe są oczywiście nieco bardziej skomplikowane niż ten prosty protokół, ponieważ istnieje wiele szczegółów do udokumentowania w złożonym procesie komunikacji pomiędzy różnymi typami urządzeń.

Znaczenie otwartości

Otwarty (niezastrzeżony) protokół to taki, który nie jest własnością żadnej konkretnej firmy i nie jest ograniczony do produktów konkretnej firmy.
Protokoły w stosie internetowym są otwarte, więc każde urządzenie komputerowe może je stosować, aby dołączyć do globalnej sieci. Nie trzeba prosić o pozwolenie na korzystanie z protokołów, nie trzeba kupować konkretnego sprzętu i nie trzeba płacić pieniędzy firmie, która stworzyła protokół. Po prostu musisz przeczytać standard i upewnić się, że urządzenie komputerowe prawidłowo go stosuje.
Z kolei niektóre protokoły komunikacyjne są zastrzeżone. Na przykład Skype jest aplikacją do połączeń głosowych, która używa własnego, zastrzeżonego protokołu do wysyłania i odbierania połączeń głosowych. Protokół Skype nie jest nigdzie publicznie opisany, a aplikacja Skype jest zamknięta (ang. closed-source). To sprawia, że nikomu poza Microsoftem (właścicielem Skype'a) bardzo trudno jest stworzyć aplikację, która mogłaby wysyłać lub odbierać rozmowy przez Skype'a. 1
Twórcy Internetu celowo uczynili protokoły otwartymi. Vint Cerf, współtwórca protokołów TCP/IP, tak mówił o ich opracowywaniu:
"Nasza teoria zakładała, że jeśli określimy, jak będą działać protokoły i jakie oprogramowanie trzeba będzie napisać, każdy, kto będzie chciał zbudować kawałek internetu, zrobi to i znajdzie kogoś, kto będzie chciał się do niego podłączyć. Wtedy system rozwijałby się organicznie, ponieważ nie miałby żadnej scentralizowanej kontroli. I dokładnie tak się stało." 2

Specyfikacje otwartego standardu

Dla każdego protokołu, który jest zarówno ustandaryzowany jak i otwarty, istnieje publicznie dostępny dokument opisujący ten protokół (często nazywany "specyfikacją").
🔍 Zajrzyj do tej 88-stronicowej specyfikacji HTTP i przejrzyj kilka sekcji.
Czy ta specyfikacja była dla Ciebie tak samo przytłaczająca jak dla mnie? Specyfikacje nie są pisane dla przeciętnego użytkownika sieci. Nie są nawet napisane dla przeciętnego programisty. Są pisane dla inżynierów, którzy tworzą nowe aplikacje na bazie protokołu i potrzebują dogłębnego zrozumienia, jak to wszystko powinno działać.
Specyfikacje mogą się zmieniać z czasem. Niekiedy są to drobne błędy, które należy naprawić, innym razem potrzebne są większe aktualizacje, aby dokładniej wyjaśnić dane zachowanie lub opisać nową funkcję. Oficjalna specyfikacja TCP została napisana w 1981 roku i od tego czasu zebrała 39 poprawek i 4 wielostronicowe specyfikacje wyjaśniające działanie protokołu.
W dzisiejszych czasach specyfikacje protokołów internetowych są utrzymywane przez Internet Engineering Task Force (IETF). IETF jest otwartym komitetem normalizacyjnym, który zajmuje się udoskonalaniem istniejących protokołów i proponowaniem zupełnie nowych. Komitet składa się z przedstawicieli całej branży internetowej i jest otwarty na udział każdego, kto ma swoje zdanie na temat tego, jak powinien działać Internet.
Języki sieci World Wide Web są również otwartymi standardami ze specyfikacjami dostępnymi online. Żywy standard HTML jest utrzymywany przez społeczność WhatWG. CSS ma wiele specyfikacji i jest utrzymywany przez W3C. JavaScript jest oparty na standardzie ECMAScript.
Celem społeczności zajmujących się standardami internetowymi jest stworzenie standardów odzwierciedlających różnorodne potrzeby aplikacji działających w Internecie oraz udokumentowanie tych standardów w postaci przejrzystych specyfikacji, które umożliwiają każdemu urządzeniu komputerowemu komunikację i współpracę online.
🤔 Jeśli tworzyłeś strony internetowe w HTML/CSS/JavaScript, co było dla Ciebie trudne do stworzenia? Gdybyś mógł zaproponować rozszerzenie do tych języków, które ułatwiłoby tworzenie stron internetowych, co by to było?

🙋🏽🙋🏻‍♀️🙋🏿‍♂️Masz pytania związane z tym zagadnieniem? Możesz zadać swoje pytanie poniżej!

Chcesz dołączyć do dyskusji?

Na razie brak głosów w dyskusji
Rozumiesz angielski? Kliknij tutaj, aby zobaczyć więcej dyskusji na angielskiej wersji strony Khan Academy.