HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Популярный вопрос на собеседовании веб-разработчиков часто звучит так: "Что происходит после того, как в браузер ввели адрес сайта?". Подробный ответ на этот вопрос можно найти<a>здесь</a>. Главное, что хочет услышать собеседующий - ваш уровень понимания<strong>http</strong>. У нас посвящен отдельный курс изучению протокола<a>http</a>.</p>
1 <p>Популярный вопрос на собеседовании веб-разработчиков часто звучит так: "Что происходит после того, как в браузер ввели адрес сайта?". Подробный ответ на этот вопрос можно найти<a>здесь</a>. Главное, что хочет услышать собеседующий - ваш уровень понимания<strong>http</strong>. У нас посвящен отдельный курс изучению протокола<a>http</a>.</p>
2 <p>Для начала пару слов о том, что такое<strong>протокол</strong>. Протокол - это набор соглашений, правил, по которым разные программы могут обмениваться информацией. http - это набор правил, который известен и вашему компьютеру и физически отдаленному компьютеру. С помощью него общаются<strong>браузер</strong>и<strong>веб-сервер</strong>.</p>
2 <p>Для начала пару слов о том, что такое<strong>протокол</strong>. Протокол - это набор соглашений, правил, по которым разные программы могут обмениваться информацией. http - это набор правил, который известен и вашему компьютеру и физически отдаленному компьютеру. С помощью него общаются<strong>браузер</strong>и<strong>веб-сервер</strong>.</p>
3 <p>Веб-сервер - программа, установленная на сервере и обслуживающая входящие соединения, например, от браузеров. В рамках такого соединения от браузера передается информация о том, какую страницу и какого сайта мы хотим загрузить, а веб-сервер, в свою очередь, возвращает браузеру содержимое страницы этого сайта.</p>
3 <p>Веб-сервер - программа, установленная на сервере и обслуживающая входящие соединения, например, от браузеров. В рамках такого соединения от браузера передается информация о том, какую страницу и какого сайта мы хотим загрузить, а веб-сервер, в свою очередь, возвращает браузеру содержимое страницы этого сайта.</p>
4 <p>Пример http-сессии (запрос-ответ) через программу curl:</p>
4 <p>Пример http-сессии (запрос-ответ) через программу curl:</p>
5 <p>http нужно не просто знать, но и уметь делать сырые http-запросы, то есть не косвенно через браузер, но и самостоятельно, эмулируя поведение браузера. Для этой задачи используют программу<em>telnet</em>. На Хекслете есть<a>соответствующий курс</a>, и там мы всему научимся.</p>
5 <p>http нужно не просто знать, но и уметь делать сырые http-запросы, то есть не косвенно через браузер, но и самостоятельно, эмулируя поведение браузера. Для этой задачи используют программу<em>telnet</em>. На Хекслете есть<a>соответствующий курс</a>, и там мы всему научимся.</p>
6 <h3>Для чего требуется знание http?</h3>
6 <h3>Для чего требуется знание http?</h3>
7 <ul><li>Работа с формами, загрузка файлов, перенаправления.</li>
7 <ul><li>Работа с формами, загрузка файлов, перенаправления.</li>
8 <li>Аутентификация целиком зависит от http.</li>
8 <li>Аутентификация целиком зависит от http.</li>
9 <li>Извлечение информации о запросе (например, определение браузера, из которого был выполнен запрос).</li>
9 <li>Извлечение информации о запросе (например, определение браузера, из которого был выполнен запрос).</li>
10 <li>Увеличение производительности. Кеширование.</li>
10 <li>Увеличение производительности. Кеширование.</li>
11 <li>Обеспечение безопасности. http - текстовый протокол без шифрования, он не безопасен.</li>
11 <li>Обеспечение безопасности. http - текстовый протокол без шифрования, он не безопасен.</li>
12 </ul><h2>https</h2>
12 </ul><h2>https</h2>
13 <p>Кроме http, в сети все большее распространение получает<strong>https</strong>. Каждый пользователь сети должен знать, что нельзя выполнять действия, связанные с любыми секретными данными (например кредитками), на страницах, работающих по протоколу http. В таком случае любой человек, имеющий доступ к оборудованию, которое лежит между вами и сервером, обслуживающим сайт, сможет прочитать эти данные. Обратите внимание, что на популярных сайтах страницы оплаты всегда отдаются по https. В свою очередь, умение работать с https сразу добавляет новые понятия:</p>
13 <p>Кроме http, в сети все большее распространение получает<strong>https</strong>. Каждый пользователь сети должен знать, что нельзя выполнять действия, связанные с любыми секретными данными (например кредитками), на страницах, работающих по протоколу http. В таком случае любой человек, имеющий доступ к оборудованию, которое лежит между вами и сервером, обслуживающим сайт, сможет прочитать эти данные. Обратите внимание, что на популярных сайтах страницы оплаты всегда отдаются по https. В свою очередь, умение работать с https сразу добавляет новые понятия:</p>
14 <ul><li>Шифрование, асимметричное шифрование</li>
14 <ul><li>Шифрование, асимметричное шифрование</li>
15 <li>Сертификаты</li>
15 <li>Сертификаты</li>
16 <li>Цифровая подпись</li>
16 <li>Цифровая подпись</li>
17 </ul><h2>TCP/IP</h2>
17 </ul><h2>TCP/IP</h2>
18 <p>Но одним http обойтись не получится. Вспомните, как запускался сервер в предыдущем уроке: php -S localhost:5555. Число 5555 обозначает порт, на котором запустится веб-сервер. Подозреваю, что предыдущее предложение прозвучало для вас совершенно непонятно. Дело в том, что http существует не сам по себе, а поверх стека протоколов TCP/IP. Базовое знание сетей важно по следующим причинам:</p>
18 <p>Но одним http обойтись не получится. Вспомните, как запускался сервер в предыдущем уроке: php -S localhost:5555. Число 5555 обозначает порт, на котором запустится веб-сервер. Подозреваю, что предыдущее предложение прозвучало для вас совершенно непонятно. Дело в том, что http существует не сам по себе, а поверх стека протоколов TCP/IP. Базовое знание сетей важно по следующим причинам:</p>
19 <ul><li>Безопасность. Очень легко совершить ошибку и быть взломанным.</li>
19 <ul><li>Безопасность. Очень легко совершить ошибку и быть взломанным.</li>
20 <li>Отладка. Немалая часть вопросов запуска и конфигурирования сайтов и их частей (в том числе базы данных) связана с сетевыми сокетами. Не зная сети вы будете останавливаться на любой простейшей проблеме без понимания, что вообще делать.</li>
20 <li>Отладка. Немалая часть вопросов запуска и конфигурирования сайтов и их частей (в том числе базы данных) связана с сетевыми сокетами. Не зная сети вы будете останавливаться на любой простейшей проблеме без понимания, что вообще делать.</li>
21 </ul><h2>DNS</h2>
21 </ul><h2>DNS</h2>
22 <p>Еще один столп веба -<strong>DNS</strong>, служба доменных имен. Каждый раз, когда мы вбиваем адрес в браузер, он выполняет DNS запросы к соответствующим серверам для выяснения того, какой ip-адрес принадлежит сайту. Дело в том, что соединение с сервером идет по tcp/ip, а не по http. http начинает работать уже после того, как было установлено tcp соединение. Знание DNS важно по следующим причинам:</p>
22 <p>Еще один столп веба -<strong>DNS</strong>, служба доменных имен. Каждый раз, когда мы вбиваем адрес в браузер, он выполняет DNS запросы к соответствующим серверам для выяснения того, какой ip-адрес принадлежит сайту. Дело в том, что соединение с сервером идет по tcp/ip, а не по http. http начинает работать уже после того, как было установлено tcp соединение. Знание DNS важно по следующим причинам:</p>
23 <ul><li>Зная DNS вы сможете не только купить домен, но и привязать его к вашему серверу</li>
23 <ul><li>Зная DNS вы сможете не только купить домен, но и привязать его к вашему серверу</li>
24 <li>Почта для домена, верификация вашего проекта различными сервисами - все это работает через возможности DNS</li>
24 <li>Почта для домена, верификация вашего проекта различными сервисами - все это работает через возможности DNS</li>
25 <li>Опять же, отладка. Нередко проблемы загрузки связаны с DNS.</li>
25 <li>Опять же, отладка. Нередко проблемы загрузки связаны с DNS.</li>
26 </ul><h2>Как учить</h2>
26 </ul><h2>Как учить</h2>
27 <p>Тема сетей достаточно подробно раскрыта в книгах по операционным системам. В списке<a>рекомендуемых книг Хекслета</a>есть как минимум одна такая.</p>
27 <p>Тема сетей достаточно подробно раскрыта в книгах по операционным системам. В списке<a>рекомендуемых книг Хекслета</a>есть как минимум одна такая.</p>