Интернет: HTTP и HTML Я Жасмин Лоуренс, и я руководитель группы проектов команды разработчиков XBox One. Один из наших крупнейших проектов — XBox Live. Это онлайн-сервис, который соединяет геймеров со всего мира, и делает это возможным интернет. Это непростая задача, и существует много процессов, происходящих "за кулисами". Интернет полностью изменил то, как люди связываются и взаимодействуют. Но как же все это работает? Как компьютеры во всем мире общаются между собой? Вот например просмотр веб-страниц. Сначала вы открываете веб-браузер, приложение, которое открывает доступ к веб-страницам. Далее вы вводите веб-адрес или URL (Унифицированный локатор ресурсов) веб-сайта, который вы хотите посетить, например Tumblr.com. Здравствуйте! Я Дэвид Карп, основатель Tumblr и сегодня мы поговорим, как работают веб-браузеры, которыми мы пользуемся в каждодневной работе. Вы, скорей всего, задумывались о том, что же происходит, когда вы набираете адрес в браузере и нажимаете "Ввод". И это так же невероятно, как вы себе представляете. В этот момент ваш компьютер начинает общаться с другим компьютером, который называется сервером, — как правило, за тысячи миль. И через миллисекунды ваш компьютер запрашивает этот сервер о веб-сайте, и сервер начинает общаться с вашим компьютером на языке HTTP. HTTP — это "Протокол передачи гипертекстовых данных". Это как язык, который использует один компьютер, чтобы спросить некий документ. Это вообще очень просто. Если бы вы перехватили разговор между вашим компьютером и веб-сервером в интернете, он, главным образом, состоял бы из запросов "получить". Это просто слово "получить" и название документа, который вы запрашиваете. Итак, если вы пытаетесь войти в Tumblr и загрузить себе нашу страницу авторизации, все, что вы делаете, — это отправляете запрос "получить" на сервер Tumblr, который выглядит как "GET /login". Это сообщает серверу Tumblr, что вам нужен весь HTML-код для страницы авторизации Tumblr. HTML означает "язык гипертекстовой разметки", и его можно считать языком, на котором вы говорите веб-браузеру, как должна выглядеть страница. Вы, наверняка, подумали о чем-то вроде Википедии, которая, по сути, является обычным большим документом. HTML — это язык, которой используется, чтобы сделать заголовки большими и жирными, выбрать шрифт, привязать определенный текст к определенным страницам, сделать какой-то текст жирным, какой-то — выделить курсивом. Поставить изображение в середине страницы, выровнять изображение влево или вправо. Текст веб-страницы включен непосредственно в HTML, но другие части, например изображения или видео — это отдельные файлы с собственными URL-адресами, которые запрашиваются отдельно. Браузер посылает отдельные HTTP-запросы для каждого из них и отражает их по мере поступления. Если веб-страница имеет много изображений, на каждый будет отдельный запрос HTTP, и страница будет загружаться медленнее. Иногда, когда вы работаете в интернете, вы не просто запрашиваете страницы, используя GET. Иногда вы отправляете информацию, например при заполнении формы или вводя поисковой запрос. Ваш браузер посылает эту информацию веб-серверу как простой текст с помощью POST-запроса HTTP. Скажем, вы заходите на Tumblr. Сначала вы делаете POST-запрос, то есть POST на страницу авторизации Tumblr, к которой прикреплены определенные данные. Здесь ваша электронная почта и пароль. Далее направляемся к серверу Tumblr. Сервер Tumblr узнает вас как Дэвида. Он пересылает веб-страницу обратно в ваш браузер, который говорит: Успешный вход как "Дэвид"! Но к этой веб-странице он также прикрепляет определенные невидимые файлы cookie, которые ваш браузер увидит и сохранит. Это очень важно, ведь только так сайт может запомнить, кто вы. Файлы cookie — это ваше удостоверение личности для сайта Tumblr. Это число, которое идентифицирует вас как Дэвида. Ваш веб-браузер запомнит это число, и в следующий раз, когда вы обновите Tumblr или перейдете на Tumblr.com, ваш браузер автоматически прикрепит этот идентификационный номер к запросу, который он отправляет на серверы Tumblr. Теперь серверы Tumblr видят запрос, поступающий из вашего браузера, видят идентификационный номер и понимают: "Окей, это запрос от Дэвида". Мы знаем, что интернет полностью открыт для всех. Все связи в нем общие, а информация передаетсья простым текстом. Это дает возможность хакерам похитить какую-либо личную информацию, которую вы отправляете через интернет. Но безопасные веб-сайты предотвращают это, требуя от вашего браузера общаться на защищенном канале, используя так называемый "защищенный сокет" (SSL), и его прееемника "Безопасность транспортного уровня" (TLS). SSL и TLS является как бы слоем безопасности, в который упаковали ваши сообщения для их защиты от кражи или подделки. SSL и TLS активны, когда вы видите замочек в адресной строке браузера, рядом с HTTPS. Протоколы HTTPS обеспечивают безопасное соединение и защиту для ваших HTTP-запросов. Когда вебсайт просит ваш браузер установить защищенное соединение, он сначала предоставляет цифровой сертификат. Это как официальное удостоверение личности, подтверждающее, что это настоящий сайт, а не имитация. Цифровые сертификаты выдаются органами сертификации, которые являются доверенными, чтобы проверять на подлинность веб-сайты и выдавать им сертификаты. Так же, как правительство выдает удостоверения личности или паспорта. Если же сайт попытается установить безопасное соединение без действительного цифрового сертификата, ваш браузер предупредит вас. Это основы темы веб-обозревателей! Часть интернета, которую мы используем изо дня в день. Итак, HTTP и DNS управляют отправкой и получением HTML, медиафайлов и всего прочего в интернете. Это возможно только благодаря сетям TCP / IP и маршрутизаторам, которые разбивают и переносят информацию небольшими пакетами. Эти пакеты состоят из двоичных последовательностей из единиц и нулей, которые физически передаются через электрические провода, оптоволоконные кабели и беспроводные сети. К счастью, если вы понимаете, как работает один слой интернета, вы можете положиться на него, не запоминая всех подробностей. Мы знаем, что все эти слои будут работать вместе, чтобы один за другим передавать информацию, руководствуясь принципами масштабирования и надежности.