Найти в Дзене
Войти в IT

Кто и зачем придумал интернет?

Оглавление

Интернет стал неразрывной частью нашей повседневной жизни: ты используешь его для работы, для общения, для учебы и отдыха. Слово "интернет" уже давно превратилось во что-то большее, чем простой технический термин. Оно стало привычным, понятным и так же узнаваемым, как "зубная щётка", "телевизор" и другие привычные глазу и уху вещи. Но как он работает внутри? Какие удивительные чудеса низкоуровневого программирования происходят незаметно для нас каждую секунду? Давай попробуем разобраться!

Что такое, интернет 🔌

Вероятно, самый простой способ описать интернет – представить его как гигантскую библиотеку. Только вместо книг здесь хранится информация в цифровом, специальным образом структурированном формате. Каждый сайт - это условная книга, а каждая страница сайта - её лист. У каждой книги есть своё название - существуют более популярные книги, а есть и более специфические, например с техническим или медицинским уклоном. Все эти «цифровые книги» (веб-страницы) расположены на «полках» (серверах) и могут быть получены при помощи «карточки библиотекаря» (Internet Protocol - IP).

Сама сеть, которую мы называем интернет – это не что иное, как множество компьютеров, соединенных между собой. Но важно то, что эти компьютеры обмениваются информацией, используя определенные, универсальные протоколы. Именно совокупность специальных протоколов и специфических технологий, позволяет поддерживать его связность - то есть, делать интернет целостной структурой, единой для внешнего обозревателя.

Вот так выглядит схема подводных интернет-кабелей, соединяющих между собой континенты и страны.
Вот так выглядит схема подводных интернет-кабелей, соединяющих между собой континенты и страны.

Связность интернета является ключевым фактором его уникальности. Вне зависимости от того, где именно находится сервер с конкретным веб-сайтом, совокупность технологий позволяет получить доступ именно к нему за считанные секунды. На картинке выше - схема подводных интернет-кабелей, благодаря которым осуществляется обмен интернет-трафиком между континентами и странами.

HTTP и его роль 🎭

Один из ключевых протоколов, используемых в интернете, это HTTP (HyperText Transfer Protocol или Гипертекстовый протокол передачи). HTTP _ это протокол, который наш с вами компьютер использует каждый раз, когда вы переходите на какую-либо веб-страницу в Интернете.

Работа HTTP простыми словами. Клиент - компьютер или ноутбук, с которого пользователь просматривает веб-сайт. Сервер - такой же компьютер (только чуть побольше), на котором физически хранится веб-сайт.
Работа HTTP простыми словами. Клиент - компьютер или ноутбук, с которого пользователь просматривает веб-сайт. Сервер - такой же компьютер (только чуть побольше), на котором физически хранится веб-сайт.

Представь себе, что ты хочешь прочитать определенную книгу из библиотеки (допустим Гарри Поттера). Ты запрашиваешь ее у библиотекаря (отправляешь HTTP-запрос), и библиотекарь приносит тебе книгу (веб-сервер отправит тебе HTTP-ответ). HTTP используется для передачи текстовых данных и изображений между твоим web-клиентом и веб-сервером. Не имеет никакого значения, используешь ли ты мобильный телефон, либо же работаешь за ноутбуком - протокол HTTP используется в обеих случаях для доступа к веб-контенту.

Как работает HTTP

Когда ты вводишь URL-адрес (Uniform Resource Locator или унифицированный указатель ресурсов) в браузер, здесь происходит несколько ключевых шагов:

  1. DNS-запрос: Твой компьютер обращается к системе доменных имен (DNS), чтобы распознать, к какому серверу нужно отправить запрос. Что такое DNS и зачем он нужен - обсудим в отдельных статьях.
  2. Установление соединения: TCP (протокол управления передачей) устанавливает устойчивое соединение между твоим компьютером и сервером.
  3. HTTP-запрос: Твой браузер отправляет HTTP-запрос на сервер. То есть, браузер запрашивает конкретную веб-страницу с конкретного веб-сайта.
  4. HTTP-ответ: Сервер обрабатывает твой запрос и отправляет обратно HTTP-ответ, содержащий данные, которые ты запрашивал. Здесь есть несколько частей - заголовок ответа и тело ответа. В заголовке содержится набор ряд мета-данных, например статус ответа - HTTP/1.1 200 OK (Запрос обработан успешно, данные отправлены), Длина ответа - Content-Length, Тип контента - Content-Type, и так далее. Все они нужны в качестве справочной информации. Так же, ответ содержит непосредственно данные — HTML-код конкретной страницы.

Кто придумал интернет и HTTP? 🧐

Протокол HTTP был разработан Тимом Бернерс-Ли и его коллегами в CERN (да-да, тот самый адронный коллайдер). Этот протокол был создан в 1989 году с целью обеспечить внутреннее взаимодействие между командой учёных - и изначально позиционировался как научный, лабораторный проект.

Сэр Тимоти Джон Бернерс-Ли (08.06.1955, Лондон) — создатель URI, URL, HTTP, HTML, Всемирной паутины и действующий глава Консорциума Всемирной паутины.
Сэр Тимоти Джон Бернерс-Ли (08.06.1955, Лондон) — создатель URI, URL, HTTP, HTML, Всемирной паутины и действующий глава Консорциума Всемирной паутины.

Тим Бернерс-Ли работал над разработкой системы, которая позволяла бы исследователям сотрудничать и обмениваться информацией. В результате возник первоначальный прототип HTTP, который стал основой для создания Всемирной паутины (World Wide Web). HTTP стал стандартным протоколом для связи между клиентом (например, веб-браузером) и сервером (например, веб-сайтом).

Фактически, в современном компьютерном мире принято считать именно Тима Бернерса изобретателем интернета в его первоначальном виде.

HTTP-статусы ответа

Внутри HTTP-ответа от сервера содержится ряд заголовков. Важнейший из них - это статус ответа. Статус ответа информирует клиентскую машину о том, успешно или неуспешно был обработан запрос, какие особенности обработки запроса возникли в процессе его анализа. Например благодаря статусу ответа можно понять, что какая-то конкретная страница сайта была удалена, перемещена, или в процессе обработки возникла ошибка.

Статус ответа содержит версию HTTP-протокола, которую использовал сервер для HTTP-ответа. Затем следует код статуса ответа – например 200, это означает успешное получение данных. Следующее – словесное описание статуса ответа: «ок».

В спецификации HTTP 1.1 всего 40 статусов. Вот тут представлена достаточно полная информация обо всех статусах, на сайте MDN. Некоторые из наиболее популярных включают:

  • 200 OK – данные успешно получены.
  • 201 Created – означает, что запрос выполнен успешно и данные созданы. Используется для подтверждения успеха запросов PUT или POST.
  • 300 Moved Permanently – указывает, что URL-адрес был изменен навсегда.
  • 400 Bad Request – указывает на неверно сформированный запрос. Обычно возникает при отправке запросов POST или PUT, когда данные не проходят проверку или представлены в неправильном формате.
  • 404 Not Found – означает, что запрашиваемый ресурс не найден.
  • 500 Internal Server Error – указывает на ошибку со стороны сервера.
Основные коды HTTP-ответов. Первое число указывает на класс кода ответа. Все коды начиная с 1 - информационные. Коды начиная с 2 - успешный ответ от сервера. Коды начиная с 3 - перенаправление на другую страницу. Коды начиная с 4 - ошибка на клиентской части. Коды начиная с 5 - ошибки со стороны сервера.
Основные коды HTTP-ответов. Первое число указывает на класс кода ответа. Все коды начиная с 1 - информационные. Коды начиная с 2 - успешный ответ от сервера. Коды начиная с 3 - перенаправление на другую страницу. Коды начиная с 4 - ошибка на клиентской части. Коды начиная с 5 - ошибки со стороны сервера.

Весь этот процесс называется "моделью запрос-ответ". Это ключевой принцип работы HTTP и составная часть понимания веб-программирования. Веб-сервера по-умолчанию работают в пассивном режиме - "на приём". Получая запросы от клиентских устройств (ноутбуки, сотовые телефоны, компьютеры), они отвечают фактическим содержимым в виде HTML-кода или медиа-информации.

Вопросы безопасности ⚔

Протокол HTTP по-умолчанию не обеспечивает шифрование передаваемой информации. Но, для HTTP существует расширение, которое обеспечивает упаковку данных в криптографический протокол SSL или TLS.

Это расширение называется HTTPS (HyperText Transfer Protocol Secure). Обычно для HTTPS-соединений используется TCP порт 443. Он широко применяется для обеспечения безопасности информации и защиты от перехвата. Он также обеспечивает защиту от атак типа "man-in-the-middle", если клиент проверяет сертификат, приватный ключ не скомпрометирован, пользователь не подтверждал использование неподписанного сертификата и на компьютере пользователя не установлены сертификаты злоумышленного центра сертификации.

Итоги 🏁

Итак, интернет – это не просто "что-то там в облаках". Это глобальная сеть, связывающая многочисленные компьютеры, и инструмент обмена данными через универсальные протоколы, такие как HTTP. Веб-программирование – это искусство понимать, как все эти элементы работают вместе для доставки информации прямо на ваш компьютер или мобильное устройство.

HTTP-протокол - основа взаимодействия между компьютером-клиентом и компьютером-сервером. Благодаря нему происходит обмен текстовой информацией, составляющей основу интернета.
HTTP-протокол - основа взаимодействия между компьютером-клиентом и компьютером-сервером. Благодаря нему происходит обмен текстовой информацией, составляющей основу интернета.

🔥 Понравилось? Подпишись! Победим восстание роботов вместе! 🔥

-6

🚀 P.S. Ты можешь круто поддержать меня и проект "Войти в IT" на boosty! Я публикую там более эксклюзивный и профессиональный, иногда немного личный контент. Хочешь посмотреть как я выгляжу в реальной жизни? Тогда жми: Ссылка 🚀

P.S.2 У меня ещё есть Telegram-канал. Там посты чуть попроще, и чуть повеселей. Ссылка