0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Популярный вопрос на собеседовании веб-разработчиков часто звучит так: "Что происходит после того, как в браузер ввели адрес сайта?". Подробный ответ на этот вопрос можно найти<a>на GitHub</a>. Главное, что хочет услышать собеседующий - ваш уровень понимания<strong>HTTP</strong>. В этом уроке мы разберем подробнее именно эту тему.</p>
1
<p>Популярный вопрос на собеседовании веб-разработчиков часто звучит так: "Что происходит после того, как в браузер ввели адрес сайта?". Подробный ответ на этот вопрос можно найти<a>на GitHub</a>. Главное, что хочет услышать собеседующий - ваш уровень понимания<strong>HTTP</strong>. В этом уроке мы разберем подробнее именно эту тему.</p>
2
<h2>Что такое HTTP</h2>
2
<h2>Что такое HTTP</h2>
3
<p>Чтобы лучше понять этот термин, вспомним что такое<strong>протокол</strong>- это набор соглашений или правил, по которым разные программы могут обмениваться информацией.</p>
3
<p>Чтобы лучше понять этот термин, вспомним что такое<strong>протокол</strong>- это набор соглашений или правил, по которым разные программы могут обмениваться информацией.</p>
4
<p>Один из самых распространенных протоколов в вебе - это<strong>HTTP</strong>(Hyper-Text Transferring Protocol). Это набор правил, который известен и вашему компьютеру, и физически отдаленному компьютеру. С помощью него браузер и веб-сервер общаются между собой.</p>
4
<p>Один из самых распространенных протоколов в вебе - это<strong>HTTP</strong>(Hyper-Text Transferring Protocol). Это набор правил, который известен и вашему компьютеру, и физически отдаленному компьютеру. С помощью него браузер и веб-сервер общаются между собой.</p>
5
<p>Вы уже знаете, что такое<strong>веб-сервер</strong>- это программа, установленная на сервере и обслуживающая входящие соединения. Веб-сервер работает в два этапа:</p>
5
<p>Вы уже знаете, что такое<strong>веб-сервер</strong>- это программа, установленная на сервере и обслуживающая входящие соединения. Веб-сервер работает в два этапа:</p>
6
<ol><li>Сначала сервер получает от браузера информацию о том, какую страницу какого сайта мы хотим загрузить</li>
6
<ol><li>Сначала сервер получает от браузера информацию о том, какую страницу какого сайта мы хотим загрузить</li>
7
<li>Затем сервер возвращает браузеру содержимое страницы этого сайта</li>
7
<li>Затем сервер возвращает браузеру содержимое страницы этого сайта</li>
8
</ol><p>Этот цикл "запрос-ответ" называется<strong>HTTP-сессией</strong>. Через программу curl посмотрим, как она выглядит:</p>
8
</ol><p>Этот цикл "запрос-ответ" называется<strong>HTTP-сессией</strong>. Через программу curl посмотрим, как она выглядит:</p>
9
<p>Технологию HTTP нужно не просто знать. Важно еще и уметь делать сырые HTTP-запросы - не косвенно через браузер, а самостоятельно, эмулируя поведение браузера. Для этой задачи используют программу<em>telnet</em>. На Хекслете есть<a>курс на эту тему</a>- там вы всему и научитесь.</p>
9
<p>Технологию HTTP нужно не просто знать. Важно еще и уметь делать сырые HTTP-запросы - не косвенно через браузер, а самостоятельно, эмулируя поведение браузера. Для этой задачи используют программу<em>telnet</em>. На Хекслете есть<a>курс на эту тему</a>- там вы всему и научитесь.</p>
10
<h2>Зачем используется HTTP</h2>
10
<h2>Зачем используется HTTP</h2>
11
<p>Протокол HTTP применяется для множества различных задач:</p>
11
<p>Протокол HTTP применяется для множества различных задач:</p>
12
<ul><li>В работе с формами, при загрузке файлов и при перенаправлении</li>
12
<ul><li>В работе с формами, при загрузке файлов и при перенаправлении</li>
13
<li>Для аутентификации, ведь она целиком зависит от HTTP</li>
13
<li>Для аутентификации, ведь она целиком зависит от HTTP</li>
14
<li>Для извлечения информации о запросе - например, можно определить, из какого браузера был выполнен запрос</li>
14
<li>Для извлечения информации о запросе - например, можно определить, из какого браузера был выполнен запрос</li>
15
<li>Для увеличения производительности и кеширования</li>
15
<li>Для увеличения производительности и кеширования</li>
16
</ul><h2>Протокол HTTPS</h2>
16
</ul><h2>Протокол HTTPS</h2>
17
<p>Помимо HTTP, в сети большое распространение получил более безопасный протокол<a><strong>HTTPS</strong></a>. Если страница работает по протоколу HTTP, на ней не стоит выполнять действия, связанные с любыми секретными данными - например, кредитками. В таком случае ваши данные сможет прочитать любой человек, который обслуживает сайт или имеет доступ к оборудованию между вами и сервером.</p>
17
<p>Помимо HTTP, в сети большое распространение получил более безопасный протокол<a><strong>HTTPS</strong></a>. Если страница работает по протоколу HTTP, на ней не стоит выполнять действия, связанные с любыми секретными данными - например, кредитками. В таком случае ваши данные сможет прочитать любой человек, который обслуживает сайт или имеет доступ к оборудованию между вами и сервером.</p>
18
<p>Обратите внимание, что на популярных сайтах страницы оплаты всегда отдаются по HTTPS. В свою очередь, умение работать с HTTPS сразу добавляет новые понятия:</p>
18
<p>Обратите внимание, что на популярных сайтах страницы оплаты всегда отдаются по HTTPS. В свою очередь, умение работать с HTTPS сразу добавляет новые понятия:</p>
19
<ul><li>Шифрование, асимметричное шифрование</li>
19
<ul><li>Шифрование, асимметричное шифрование</li>
20
<li>Сертификаты</li>
20
<li>Сертификаты</li>
21
<li>Цифровая подпись</li>
21
<li>Цифровая подпись</li>
22
</ul><h3>TCP/IP</h3>
22
</ul><h3>TCP/IP</h3>
23
<p>Только протоколами HTTP и HTTPS обойтись не получится. Дело в том, что HTTP существует не сам по себе, а поверх стека протоколов TCP/IP. Базовое знание сетей важно по следующим причинам:</p>
23
<p>Только протоколами HTTP и HTTPS обойтись не получится. Дело в том, что HTTP существует не сам по себе, а поверх стека протоколов TCP/IP. Базовое знание сетей важно по следующим причинам:</p>
24
<ul><li>Для безопасности. Без базовых знаний легко совершить ошибку и быть взломанным</li>
24
<ul><li>Для безопасности. Без базовых знаний легко совершить ошибку и быть взломанным</li>
25
<li>Для отладки. Даже с малейшими проблемами в работе сайтов сложно справиться без базовых знаний о сетях. Так происходит потому, что немалая часть вопросов запуска и конфигурирования сайтов связана с сетевыми сокетами</li>
25
<li>Для отладки. Даже с малейшими проблемами в работе сайтов сложно справиться без базовых знаний о сетях. Так происходит потому, что немалая часть вопросов запуска и конфигурирования сайтов связана с сетевыми сокетами</li>
26
</ul><h3>DNS</h3>
26
</ul><h3>DNS</h3>
27
<p>Еще один столп веба -<a><strong>служба доменных имен</strong></a>(DNS).</p>
27
<p>Еще один столп веба -<a><strong>служба доменных имен</strong></a>(DNS).</p>
28
<p>Представьте, что мы вбиваем адрес в браузер. В этот момент браузер выполняет DNS-запросы к соответствующим серверам и пытается выяснить, к какому IP-адресу принадлежит сайт. Дело в том, что соединение с сервером идет по TCP/IP, а не по HTTP. Протокол HTTP начинает работать уже после того, как было установлено TCP-соединение.</p>
28
<p>Представьте, что мы вбиваем адрес в браузер. В этот момент браузер выполняет DNS-запросы к соответствующим серверам и пытается выяснить, к какому IP-адресу принадлежит сайт. Дело в том, что соединение с сервером идет по TCP/IP, а не по HTTP. Протокол HTTP начинает работать уже после того, как было установлено TCP-соединение.</p>
29
<p>Знание DNS поможет:</p>
29
<p>Знание DNS поможет:</p>
30
<ul><li>Привязать домен к серверу</li>
30
<ul><li>Привязать домен к серверу</li>
31
<li>Настраивать почту для домена</li>
31
<li>Настраивать почту для домена</li>
32
<li>Верифицировать проект различными сервисами</li>
32
<li>Верифицировать проект различными сервисами</li>
33
<li>Быстрее и эффективнее проводить отладку, ведь нередко проблемы загрузки связаны с DNS</li>
33
<li>Быстрее и эффективнее проводить отладку, ведь нередко проблемы загрузки связаны с DNS</li>
34
</ul><h3>Как учить</h3>
34
</ul><h3>Как учить</h3>
35
<p>Тема сетей достаточно подробно раскрыта в книгах по операционным системам. В списке<a>рекомендуемых книг Хекслета</a>есть как минимум один источник на эту тему.</p>
35
<p>Тема сетей достаточно подробно раскрыта в книгах по операционным системам. В списке<a>рекомендуемых книг Хекслета</a>есть как минимум один источник на эту тему.</p>