IT-курсы
← к курсу

Урок 3 · Расследование: почему открывается сайт

Что браузер просит у сервера?

Научитесь: Объяснить, что такое HTTP, чем отличаются запрос и ответ, а также понимать смысл самых распространённых статус-кодов сервера.

Расследование продолжается

В прошлом уроке браузер нашёл нужный сервер.

Для этого он использовал доменное имя, обратился к DNS и получил IP-адрес. Теперь он знает, куда обращаться.

Но знать адрес недостаточно.

Представьте, что вы пришли в библиотеку. Вы нашли нужное здание, вошли внутрь... и остановились.

Что дальше?

Очевидно, нужно обратиться к библиотекарю и попросить нужную книгу.

С сервером происходит то же самое. Браузер должен не просто найти сервер — он должен отправить ему понятную просьбу. А сервер, в свою очередь, должен дать понятный ответ.

Именно об этом языке общения мы сегодня и поговорим.


Браузер и сервер должны понимать друг друга

Когда два человека разговаривают, они используют общий язык. Если один говорит по-русски, а другой понимает только японский, договориться будет сложно.

Компьютерам тоже нужен общий язык общения. Для веба таким языком стал HTTP (HyperText Transfer Protocol).

Не обязательно запоминать полное название. Важно понять его назначение.

HTTP — это набор правил, по которым браузер и сервер обмениваются данными.

HTTP не хранит сайты. Не рисует страницы. Не ищет серверы. Он лишь определяет, как браузер просит данные и как сервер отвечает.


Что такое запрос?

Когда браузер хочет получить страницу, он отправляет серверу запрос.

Запрос можно представить как письмо. В нём говорится примерно следующее:

«Здравствуйте. Пожалуйста, пришлите мне вот эту страницу.»

После отправки браузер ждёт ответ.

Самое интересное здесь в том, что браузер не просит «показать сайт». Он просит конкретный ресурс. Например:

Для сервера это разные запросы.

А что происходит, если сервер не может выполнить просьбу?


Что такое ответ?

Получив запрос, сервер пытается его обработать. Если всё прошло успешно, он отправляет браузеру ответ.

Ответ обычно состоит из двух частей. Первая сообщает, как закончилась обработка запроса. Вторая содержит сами данные. Например:

После получения ответа браузер начинает работать с полученными данными. Именно поэтому мы говорим, что веб построен вокруг постоянного обмена запросами и ответами.


Зачем нужны статус-коды?

Представьте, что вы заказали книгу в библиотеке. Библиотекарь может ответить по-разному:

Сервер делает примерно то же самое. Чтобы браузер быстро понял результат запроса, сервер отправляет специальный статус-код.

Запоминать десятки кодов не нужно. Для начала достаточно трёх самых распространённых.

200 OK — запрос выполнен успешно. Сервер нашёл нужный ресурс и отправил его браузеру.

404 Not Found — запрошенный ресурс не найден. Это не обязательно означает, что весь сайт перестал работать. Возможно, была удалена только одна страница или изображение.

500 Internal Server Error — на стороне сервера произошла ошибка. Браузер всё сделал правильно, но сервер не смог обработать запрос. Такую проблему уже нельзя исправить обновлением страницы или очисткой кэша.

💡 Почему так делают в индустрии

Опытные разработчики редко начинают поиск проблемы с чтения кода. Сначала они смотрят статус ответа сервера. Один трёхзначный код часто позволяет сразу понять, где искать причину: в адресе страницы, на сервере или в самом приложении.


Вся картина выглядит так

Теперь наше расследование стало ещё на один шаг длиннее.

  1. Пользователь вводит URL.
  2. Браузер находит сервер через DNS.
  3. Браузер отправляет HTTP-запрос.
  4. Сервер обрабатывает запрос.
  5. Сервер отправляет HTTP-ответ.
  6. Браузер получает данные.

Но есть одна деталь, которую мы пока намеренно пропускаем. Мы несколько раз сказали слово «данные», но ни разу не уточнили, что именно получает браузер. Это мы и выясним дальше.

Если сервер отвечает данными, что именно находится внутри ответа?


🤖 AI-помощник

Попробуйте спросить AI:

«Объясни разницу между HTTP-запросом и HTTP-ответом на примере заказа еды.»

После этого проверьте объяснение. Если модель начинает подробно рассказывать про HTTPS, TCP или внутреннее устройство браузера, значит, она снова ушла дальше текущей темы. Это хороший повод потренироваться отделять основную идею урока от деталей, которые изучаются позже.


Что мы уже знаем?

Теперь начало открытия сайта выглядит так:

Мы ещё не знаем, какие именно данные приходят в ответе. Но уже понимаем самое важное: браузер и сервер постоянно обмениваются сообщениями по правилам HTTP.


Частая ошибка новичков

«HTTP скачивает сайты.»

На самом деле HTTP ничего не скачивает самостоятельно. HTTP — это правила общения между браузером и сервером. Запрос отправляет браузер. Ответ отправляет сервер. HTTP лишь определяет, как должен происходить этот обмен.

Проверьте себя

1. Что такое HTTP?

2. Что происходит после того, как браузер находит нужный сервер?

3. Что означает статус-код 404?

4. Какое утверждение о запросе и ответе верно?