HTML Diff
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>