0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Современные сайты разрабатываются на множестве языков с помощью разных технологий, но принципы их устройства одинаковые. То, почему сайты внутри устроены похожим образом, определяется архитектурой веба. В его основе лежит протокол HTTP, с которым мы уже знакомы по одноименному курсу.</p>
1
<p>Современные сайты разрабатываются на множестве языков с помощью разных технологий, но принципы их устройства одинаковые. То, почему сайты внутри устроены похожим образом, определяется архитектурой веба. В его основе лежит протокол HTTP, с которым мы уже знакомы по одноименному курсу.</p>
2
<p>Современный веб несколько сложнее благодаря WebSocket. Это существенно влияет на принципы разработки сайтов, которые активно используют его.</p>
2
<p>Современный веб несколько сложнее благодаря WebSocket. Это существенно влияет на принципы разработки сайтов, которые активно используют его.</p>
3
<p>При этом веб-сокеты не заменяют обычный способ взаимодействия. Они только дополняют необходимым для некоторых ситуаций. К таким задачам относится любое взаимодействие в реальном времени (real-time), например, чаты или многопользовательские игры.</p>
3
<p>При этом веб-сокеты не заменяют обычный способ взаимодействия. Они только дополняют необходимым для некоторых ситуаций. К таким задачам относится любое взаимодействие в реальном времени (real-time), например, чаты или многопользовательские игры.</p>
4
<p>Принцип взаимодействия с любым сайтом сводится к следующим шагам:</p>
4
<p>Принцип взаимодействия с любым сайтом сводится к следующим шагам:</p>
5
<ol><li>Пользователь запрашивает страницу сайта</li>
5
<ol><li>Пользователь запрашивает страницу сайта</li>
6
<li>Браузер выполняет HTTP-запрос к веб-серверу</li>
6
<li>Браузер выполняет HTTP-запрос к веб-серверу</li>
7
<li>Веб-сервер возвращает содержимое страницы в HTTP-ответе</li>
7
<li>Веб-сервер возвращает содержимое страницы в HTTP-ответе</li>
8
<li>Браузер отрисовывает страницу сайта</li>
8
<li>Браузер отрисовывает страницу сайта</li>
9
<li>Пользователь кликает по ссылке на сайте и весь процесс повторяется снова</li>
9
<li>Пользователь кликает по ссылке на сайте и весь процесс повторяется снова</li>
10
</ol><p>Сам процесс взаимодействия с сайтом будет сложнее, но нас интересует только взаимодействие с приложением.</p>
10
</ol><p>Сам процесс взаимодействия с сайтом будет сложнее, но нас интересует только взаимодействие с приложением.</p>
11
<p>Каждый такой цикл включает в себя HTTP-сессию: HTTP-запрос и HTTP-ответ. Проще всего увидеть HTTP-сессию, если использовать утилиту curl:</p>
11
<p>Каждый такой цикл включает в себя HTTP-сессию: HTTP-запрос и HTTP-ответ. Проще всего увидеть HTTP-сессию, если использовать утилиту curl:</p>
12
<p>Принцип взаимодействия сайта не зависит от того, на каком языке он написан. Всегда есть запрос, который нужно обработать и вернуть ответ в виде HTML.</p>
12
<p>Принцип взаимодействия сайта не зависит от того, на каком языке он написан. Всегда есть запрос, который нужно обработать и вернуть ответ в виде HTML.</p>
13
<p>HTML для конкретного запроса определяется самим запросом - запрошенной страницей и параметрами HTTP, например, заголовками.</p>
13
<p>HTML для конкретного запроса определяется самим запросом - запрошенной страницей и параметрами HTTP, например, заголовками.</p>
14
<p>Код сайта представляет собой набор обработчиков разных страниц, которые принимают запросы, формируют ответ и возвращают его.</p>
14
<p>Код сайта представляет собой набор обработчиков разных страниц, которые принимают запросы, формируют ответ и возвращают его.</p>
15
<p>Ниже приведены примеры кода на разных языках, где видно общую структуру: функция-обработчик, привязанная к конкретной странице:</p>
15
<p>Ниже приведены примеры кода на разных языках, где видно общую структуру: функция-обработчик, привязанная к конкретной странице:</p>
16
<p><strong>PHP</strong></p>
16
<p><strong>PHP</strong></p>
17
<p><strong>Ruby</strong></p>
17
<p><strong>Ruby</strong></p>
18
<p><strong>Python</strong></p>
18
<p><strong>Python</strong></p>
19
<p><strong>Java</strong></p>
19
<p><strong>Java</strong></p>
20
<p><strong>JavaScript</strong></p>
20
<p><strong>JavaScript</strong></p>
21
<p>Реальные сайты устроены сложнее. Но в основе лежит та связка запрос-ответ, которая была описана в этом уроке. Именно она определяет общую структуру сайта, написанного на любом языке.</p>
21
<p>Реальные сайты устроены сложнее. Но в основе лежит та связка запрос-ответ, которая была описана в этом уроке. Именно она определяет общую структуру сайта, написанного на любом языке.</p>