HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Для обмена информацией с сайтом в интернете используются протоколы HTTP и HTTPS. Эти протоколы находятся на прикладном уровне по модели TCP/IP.</p>
1 <p>Для обмена информацией с сайтом в интернете используются протоколы HTTP и HTTPS. Эти протоколы находятся на прикладном уровне по модели TCP/IP.</p>
2 <p>В этом уроке мы рассмотрим работу этих протоколов, что отсылается на сервер и какую информацию получает клиент. Также узнаем, почему нельзя передавать банковские данные по протоколу HTTP, а лучше для этих целей использовать HTTPS. Еще мы разберемся, при чем здесь атака Man-in-the-Middle.</p>
2 <p>В этом уроке мы рассмотрим работу этих протоколов, что отсылается на сервер и какую информацию получает клиент. Также узнаем, почему нельзя передавать банковские данные по протоколу HTTP, а лучше для этих целей использовать HTTPS. Еще мы разберемся, при чем здесь атака Man-in-the-Middle.</p>
3 <h2>Протоколы HTTP и HTTPS</h2>
3 <h2>Протоколы HTTP и HTTPS</h2>
4 <p>Все сайты в интернете построены по принципу "Запрос - ответ". Например, когда вы спрашиваете в Google "Как приготовить торт", то запрос с таким текстом посылается на сервер. Он находит все подходящие ссылки и возвращает страницу, на которой расположены результаты по запросу:</p>
4 <p>Все сайты в интернете построены по принципу "Запрос - ответ". Например, когда вы спрашиваете в Google "Как приготовить торт", то запрос с таким текстом посылается на сервер. Он находит все подходящие ссылки и возвращает страницу, на которой расположены результаты по запросу:</p>
5 <p>Клиент и сервер общаются по правилам, то есть по протоколам. Для работы с сайтами используются два основных протокола:</p>
5 <p>Клиент и сервер общаются по правилам, то есть по протоколам. Для работы с сайтами используются два основных протокола:</p>
6 <ul><li><strong>HTTP</strong>(HyperText Transfer Protocol) - протокол передачи гипертекста</li>
6 <ul><li><strong>HTTP</strong>(HyperText Transfer Protocol) - протокол передачи гипертекста</li>
7 <li><strong>HTTPS</strong>(HyperText Transfer Protocol Secure) - защищенный протокол передачи гипертекста</li>
7 <li><strong>HTTPS</strong>(HyperText Transfer Protocol Secure) - защищенный протокол передачи гипертекста</li>
8 </ul><p>Эти протоколы находятся на прикладном уровне модели TCP/IP и описывают, в каком формате посылаются запросы, и что ожидается в ответ. Это скрыто от пользователя. При этом даже простой запрос в поисковую систему состоит из множества дополнительной информации, которая пересылается от пользователя.</p>
8 </ul><p>Эти протоколы находятся на прикладном уровне модели TCP/IP и описывают, в каком формате посылаются запросы, и что ожидается в ответ. Это скрыто от пользователя. При этом даже простой запрос в поисковую систему состоит из множества дополнительной информации, которая пересылается от пользователя.</p>
9 <p>Рассмотрим протокол подробнее и определим, что такое гипертекст.</p>
9 <p>Рассмотрим протокол подробнее и определим, что такое гипертекст.</p>
10 <h3>Протокол HTTP</h3>
10 <h3>Протокол HTTP</h3>
11 <p>Представьте страницу сайта в интернете. Она состоит из текстов, картинок, видео и аудио. Все это обычная текстовая страница. В интернете страницы связаны между собой ссылками. Например, чтобы зайти в этот урок, вам нужно перейти по ссылке в курсе или нажать кнопку "Далее" в предыдущем уроке.</p>
11 <p>Представьте страницу сайта в интернете. Она состоит из текстов, картинок, видео и аудио. Все это обычная текстовая страница. В интернете страницы связаны между собой ссылками. Например, чтобы зайти в этот урок, вам нужно перейти по ссылке в курсе или нажать кнопку "Далее" в предыдущем уроке.</p>
12 <p>Ссылки, которые направляют на другие страницы, называются<strong>гиперссылками</strong>, а страница в интернете состоит из<strong>гипертекста</strong>- текста со ссылками. Именно это и подразумевается под<strong>протоколом передачи гипертекста</strong>- передается целая страница с текстом, медиафайлами, разметкой на языке HTML, CSS и JavaScript.</p>
12 <p>Ссылки, которые направляют на другие страницы, называются<strong>гиперссылками</strong>, а страница в интернете состоит из<strong>гипертекста</strong>- текста со ссылками. Именно это и подразумевается под<strong>протоколом передачи гипертекста</strong>- передается целая страница с текстом, медиафайлами, разметкой на языке HTML, CSS и JavaScript.</p>
13 <p>HTTP - набор правил, по которым передается запрос на получение гипертекста. По этим правилам определяется формат ответа на запрос. Важно, что порядок именно такой - пользователь посылает запрос и получает ответ в виде страницы.</p>
13 <p>HTTP - набор правил, по которым передается запрос на получение гипертекста. По этим правилам определяется формат ответа на запрос. Важно, что порядок именно такой - пользователь посылает запрос и получает ответ в виде страницы.</p>
14 <p>Рассмотрим, как выглядит запрос и ответ на примере поискового запроса в гугле.</p>
14 <p>Рассмотрим, как выглядит запрос и ответ на примере поискового запроса в гугле.</p>
15 <h4>Запрос в HTTP</h4>
15 <h4>Запрос в HTTP</h4>
16 <p>Когда пользователь хочет узнать у Google, как приготовить торт, по HTTP отправляется запрос:</p>
16 <p>Когда пользователь хочет узнать у Google, как приготовить торт, по HTTP отправляется запрос:</p>
17 <p>GET /search?q=как+приготовить+торт HTTP/1.1 Host: google.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.124 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Language: ru,en;q=0.9 Accept-Encoding: gzip, deflate, br</p>
17 <p>GET /search?q=как+приготовить+торт HTTP/1.1 Host: google.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.124 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Language: ru,en;q=0.9 Accept-Encoding: gzip, deflate, br</p>
18 <p>Это не полный список данных. Но по нему уже можно понять, как много данных посылается на сервер, чтобы получить список сайтов по запросу. В этом запросе браузер послал на сервер:</p>
18 <p>Это не полный список данных. Но по нему уже можно понять, как много данных посылается на сервер, чтобы получить список сайтов по запросу. В этом запросе браузер послал на сервер:</p>
19 <ul><li>Поисковую фразу "Как приготовить торт"</li>
19 <ul><li>Поисковую фразу "Как приготовить торт"</li>
20 <li>Куда именно посылается информация</li>
20 <li>Куда именно посылается информация</li>
21 <li>Какой используется браузер или<strong>User-Agent</strong>- строка, где собираются данные о пользователе, который отправил запрос</li>
21 <li>Какой используется браузер или<strong>User-Agent</strong>- строка, где собираются данные о пользователе, который отправил запрос</li>
22 <li>Разрешенные типы данных, которые мы готовы получить</li>
22 <li>Разрешенные типы данных, которые мы готовы получить</li>
23 </ul><p>То, что указано в примере выше, является протоколом HTTP. Если вы хотите подробнее разобраться в работе протокола "изнутри", то советуем пройти курс<a>"Протокол HTTP"</a>.</p>
23 </ul><p>То, что указано в примере выше, является протоколом HTTP. Если вы хотите подробнее разобраться в работе протокола "изнутри", то советуем пройти курс<a>"Протокол HTTP"</a>.</p>
24 <h4>Ответ в HTTP</h4>
24 <h4>Ответ в HTTP</h4>
25 <p>Когда запрос посылается в HTTP, клиент ожидает ответ. Он включает в себя:</p>
25 <p>Когда запрос посылается в HTTP, клиент ожидает ответ. Он включает в себя:</p>
26 <ul><li>Статус ответа. Возможно, запрашиваемой страницы не существует. Тогда сервер вернет статус 404. Если страница есть и все в порядке, то вернется код 200</li>
26 <ul><li>Статус ответа. Возможно, запрашиваемой страницы не существует. Тогда сервер вернет статус 404. Если страница есть и все в порядке, то вернется код 200</li>
27 <li>Служебные заголовки. Здесь может быть указана дата, размер ответа, тип ответа. Это полезно для браузера, чтобы он мог корректно отобразить страницу</li>
27 <li>Служебные заголовки. Здесь может быть указана дата, размер ответа, тип ответа. Это полезно для браузера, чтобы он мог корректно отобразить страницу</li>
28 <li>Тело ответа. Здесь и хранится вся страница, которую нужно отобразить. Она присылается в виде HTML разметки, на которой и проектируются сайты в интернете</li>
28 <li>Тело ответа. Здесь и хранится вся страница, которую нужно отобразить. Она присылается в виде HTML разметки, на которой и проектируются сайты в интернете</li>
29 </ul><p>Тело ответа может быть очень большим и содержать десятки тысяч строк кода. А браузеру нужно это обработать перед тем, как вывести на экран. Вот как может выглядеть ответ от сервера:</p>
29 </ul><p>Тело ответа может быть очень большим и содержать десятки тысяч строк кода. А браузеру нужно это обработать перед тем, как вывести на экран. Вот как может выглядеть ответ от сервера:</p>
30 <p>HTTP/1.1 200 OK Last-Modified: Sun, 07 Jul 2022 13:10:10 GMT Connection: Keep-Alive Content-Type: text/html; charset=UTF-8 &lt;!doctype html&gt; &lt;html&gt; Здесь и далее разметка в формате HTML</p>
30 <p>HTTP/1.1 200 OK Last-Modified: Sun, 07 Jul 2022 13:10:10 GMT Connection: Keep-Alive Content-Type: text/html; charset=UTF-8 &lt;!doctype html&gt; &lt;html&gt; Здесь и далее разметка в формате HTML</p>
31 <p>В запросе и ответе данные посылаются в открытом виде. В итоге можно увидеть, какие данные были посланы и получены. Все это никак не зашифровано. Поэтому такая передача данных ненадежна для конфиденциальной информации, например ваших паспортных данных:</p>
31 <p>В запросе и ответе данные посылаются в открытом виде. В итоге можно увидеть, какие данные были посланы и получены. Все это никак не зашифровано. Поэтому такая передача данных ненадежна для конфиденциальной информации, например ваших паспортных данных:</p>
32 <p>Чтобы решить проблему защищенности при передаче информации, разработали протокол HTTPS.</p>
32 <p>Чтобы решить проблему защищенности при передаче информации, разработали протокол HTTPS.</p>
33 <h3>Протокол HTTPS</h3>
33 <h3>Протокол HTTPS</h3>
34 <p>Протокол HTTPS дополнил протокол HTTP - добавил в него функцию шифрования информации. Часто пользователи даже не замечают, что сайт открывается именно по протоколу HTTPS.</p>
34 <p>Протокол HTTPS дополнил протокол HTTP - добавил в него функцию шифрования информации. Часто пользователи даже не замечают, что сайт открывается именно по протоколу HTTPS.</p>
35 <p>Взгляните на адресную строку своего браузера. Сайт Хекслета работает именно по этому протоколу, поэтому можно увидеть значок замочка и адрес https://ru.hexlet.io. Если попробовать открыть сайт по протоколу HTTP, то сработает автоматическая переадресация на защищенный протокол. Так мы гарантируем, что ваш логин и пароль от сайта будут в безопасности при обращении к серверу:</p>
35 <p>Взгляните на адресную строку своего браузера. Сайт Хекслета работает именно по этому протоколу, поэтому можно увидеть значок замочка и адрес https://ru.hexlet.io. Если попробовать открыть сайт по протоколу HTTP, то сработает автоматическая переадресация на защищенный протокол. Так мы гарантируем, что ваш логин и пароль от сайта будут в безопасности при обращении к серверу:</p>
36 <p>Протокол HTTPS - стандарт почти для любого сайта в интернете. Сайты перестали быть только средством получения информации - мы передаем свои данные, поэтому нам необходима защищенность. Если передавать важные данные по протоколу HTTP, то их могут перехватить злоумышленники, которые перехватят запрос, получат информацию и отправят его дальше. Такая атака называется Man-in-the-Middle.</p>
36 <p>Протокол HTTPS - стандарт почти для любого сайта в интернете. Сайты перестали быть только средством получения информации - мы передаем свои данные, поэтому нам необходима защищенность. Если передавать важные данные по протоколу HTTP, то их могут перехватить злоумышленники, которые перехватят запрос, получат информацию и отправят его дальше. Такая атака называется Man-in-the-Middle.</p>
37 <h2>Man-in-the-Middle</h2>
37 <h2>Man-in-the-Middle</h2>
38 <p>Пока данные переходят от клиента на сервер их возможно перехватить и прочитать. Из-за того, что данные только читаются, то ни сервер, ни клиент не заметят этого, значит, ничего странного для двух сторон не произойдет.</p>
38 <p>Пока данные переходят от клиента на сервер их возможно перехватить и прочитать. Из-за того, что данные только читаются, то ни сервер, ни клиент не заметят этого, значит, ничего странного для двух сторон не произойдет.</p>
39 <p>Название<strong>Man-in-the-Middle</strong>или<strong>"Человек посередине"</strong>атака получила из-за того, что злоумышленник встраивается в процесс передачи информации. Вначале вся информация проходит через него, а уже потом уходит дальше:</p>
39 <p>Название<strong>Man-in-the-Middle</strong>или<strong>"Человек посередине"</strong>атака получила из-за того, что злоумышленник встраивается в процесс передачи информации. Вначале вся информация проходит через него, а уже потом уходит дальше:</p>
40 <p>Один из самых простых способов осуществить такую атаку - создать свою публичную Wi-Fi сеть, например, в кафе. В итоге пользователь подключается к ней, и теперь злоумышленник может видеть все пакеты, которые пересылаются по этой сети.</p>
40 <p>Один из самых простых способов осуществить такую атаку - создать свою публичную Wi-Fi сеть, например, в кафе. В итоге пользователь подключается к ней, и теперь злоумышленник может видеть все пакеты, которые пересылаются по этой сети.</p>
41 <p>Если используется протокол HTTPS, то между клиентом и сервером устанавливается защищенное соединение. Все данные в нем шифруются, а расшифровать их можно только на одной из сторон, но не во время передачи. Даже если злоумышленник сможет перехватить пакеты, то вместо данных он получит бессмысленную информацию:</p>
41 <p>Если используется протокол HTTPS, то между клиентом и сервером устанавливается защищенное соединение. Все данные в нем шифруются, а расшифровать их можно только на одной из сторон, но не во время передачи. Даже если злоумышленник сможет перехватить пакеты, то вместо данных он получит бессмысленную информацию:</p>
42 <p>Внимательно следите за протоколом при передаче:</p>
42 <p>Внимательно следите за протоколом при передаче:</p>
43 <ul><li>Логина и пароля</li>
43 <ul><li>Логина и пароля</li>
44 <li>Банковских данных</li>
44 <li>Банковских данных</li>
45 <li>Сообщений своим друзьям и близким</li>
45 <li>Сообщений своим друзьям и близким</li>
46 <li>Персональных данных</li>
46 <li>Персональных данных</li>
47 </ul><p>Если вы не доверяете сайту, который запрашивает какие-то данные, то лучше уйдите с него.</p>
47 </ul><p>Если вы не доверяете сайту, который запрашивает какие-то данные, то лучше уйдите с него.</p>
48 <h2>Выводы</h2>
48 <h2>Выводы</h2>
49 <p>В этом уроке мы рассмотрели работу протоколов HTTP и HTTPS, а также узнали, что отсылается на сервер, какую информацию получает клиент, и почему нельзя передавать банковские данные по протоколу HTTP. Повторим важные моменты:</p>
49 <p>В этом уроке мы рассмотрели работу протоколов HTTP и HTTPS, а также узнали, что отсылается на сервер, какую информацию получает клиент, и почему нельзя передавать банковские данные по протоколу HTTP. Повторим важные моменты:</p>
50 <ul><li>Для передачи информации в интернете используются протоколы HTTP и HTTPS</li>
50 <ul><li>Для передачи информации в интернете используются протоколы HTTP и HTTPS</li>
51 <li>Основное отличие HTTP и HTTPS - шифрование данных. При использовании HTTP данные передаются в открытом виде, что небезопасно</li>
51 <li>Основное отличие HTTP и HTTPS - шифрование данных. При использовании HTTP данные передаются в открытом виде, что небезопасно</li>
52 <li>При передаче данных по протоколу HTTP их может перехватить злоумышленник с помощью атаки Man-in-the-Middle</li>
52 <li>При передаче данных по протоколу HTTP их может перехватить злоумышленник с помощью атаки Man-in-the-Middle</li>
53 <li>Чтобы злоумышленники не перехватили конфиденциальную информацию, сайты используют протокол HTTPS, который шифрует данные</li>
53 <li>Чтобы злоумышленники не перехватили конфиденциальную информацию, сайты используют протокол HTTPS, который шифрует данные</li>
54 </ul>
54 </ul>