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 <!doctype html> <html> Здесь и далее разметка в формате 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 <!doctype html> <html> Здесь и далее разметка в формате 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>