Ключевые аспекты веб-разработки на Python
2026-02-26 18:14 Diff

Популярный вопрос на собеседовании веб-разработчиков часто звучит так: «Что происходит после того, как в браузер ввели адрес сайта?». Подробный ответ на этот вопрос можно найти на GitHub. Главное, что хочет услышать собеседующий — ваш уровень понимания HTTP. В этом уроке мы разберем подробнее именно эту тему.

Что такое HTTP

Чтобы лучше понять этот термин, вспомним что такое протокол — это набор соглашений или правил, по которым разные программы могут обмениваться информацией.

Один из самых распространенных протоколов в вебе — это HTTP (Hyper-Text Transferring Protocol). Это набор правил, который известен и вашему компьютеру, и физически отдаленному компьютеру. С помощью него браузер и веб-сервер общаются между собой.

Вы уже знаете, что такое веб-сервер — это программа, установленная на сервере и обслуживающая входящие соединения. Веб-сервер работает в два этапа:

  1. Сначала сервер получает от браузера информацию о том, какую страницу какого сайта мы хотим загрузить
  2. Затем сервер возвращает браузеру содержимое страницы этого сайта

Этот цикл «запрос-ответ» называется HTTP-сессией. Через программу curl посмотрим, как она выглядит:

Технологию HTTP нужно не просто знать. Важно еще и уметь делать сырые HTTP-запросы — не косвенно через браузер, а самостоятельно, эмулируя поведение браузера. Для этой задачи используют программу telnet. На Хекслете есть курс на эту тему — там вы всему и научитесь.

Зачем используется HTTP

Протокол HTTP применяется для множества различных задач:

  • В работе с формами, при загрузке файлов и при перенаправлении
  • Для аутентификации, ведь она целиком зависит от HTTP
  • Для извлечения информации о запросе — например, можно определить, из какого браузера был выполнен запрос
  • Для увеличения производительности и кеширования

Протокол HTTPS

Помимо HTTP, в сети большое распространение получил более безопасный протокол HTTPS. Если страница работает по протоколу HTTP, на ней не стоит выполнять действия, связанные с любыми секретными данными — например, кредитками. В таком случае ваши данные сможет прочитать любой человек, который обслуживает сайт или имеет доступ к оборудованию между вами и сервером.

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

  • Шифрование, асимметричное шифрование
  • Сертификаты
  • Цифровая подпись

TCP/IP

Только протоколами HTTP и HTTPS обойтись не получится. Дело в том, что HTTP существует не сам по себе, а поверх стека протоколов TCP/IP. Базовое знание сетей важно по следующим причинам:

  • Для безопасности. Без базовых знаний легко совершить ошибку и быть взломанным
  • Для отладки. Даже с малейшими проблемами в работе сайтов сложно справиться без базовых знаний о сетях. Так происходит потому, что немалая часть вопросов запуска и конфигурирования сайтов связана с сетевыми сокетами

DNS

Еще один столп веба — служба доменных имен (DNS).

Представьте, что мы вбиваем адрес в браузер. В этот момент браузер выполняет DNS-запросы к соответствующим серверам и пытается выяснить, к какому IP-адресу принадлежит сайт. Дело в том, что соединение с сервером идет по TCP/IP, а не по HTTP. Протокол HTTP начинает работать уже после того, как было установлено TCP-соединение.

Знание DNS поможет:

  • Привязать домен к серверу
  • Настраивать почту для домена
  • Верифицировать проект различными сервисами
  • Быстрее и эффективнее проводить отладку, ведь нередко проблемы загрузки связаны с DNS

Как учить

Тема сетей достаточно подробно раскрыта в книгах по операционным системам. В списке рекомендуемых книг Хекслета есть как минимум один источник на эту тему.