🎓 Учебный материал · Информатика

Веб-разработка
от первого тега до продакшна

Пошаговый курс для тех, кто хочет понять, как создаются современные сайты и приложения. Простым языком — с примерами из жизни, аналогиями и комментариями к каждой строке кода.

8 тем
80+ строк кода
возможностей
01

HTML — Каркас страницы

HTML (HyperText Markup Language — язык разметки) задаёт структуру любой веб-страницы. Это основа всего.

Аналогия из жизни: Представьте, что вы строите дом. HTML — это фундамент, стены, перегородки, окна и двери. Без каркаса невозможно повесить обои (CSS) или включить свет (JavaScript). Сначала — строим структуру, потом — украшаем.

🔑 Ключевые понятия

  • <tag> — каждый элемент обёрнут в тег. Это команда браузеру: «сделай заголовок», «вставь картинку». Как наклейки на коробках при переезде: одна — «книги», другая — «кухня».
  • <head> — невидимая часть страницы: заголовок во вкладке, подключение стилей, описание для поисковиков. Как паспорт дома — адрес, этажность, владелец.
  • <body> — всё, что видит пользователь: текст, картинки, кнопки. Это сам дом, в который можно зайти.
  • Атрибуты — дополнительные параметры тегов. Как адрес на конверте: конверт — это тег, а адрес — атрибут.
index.html
<!DOCTYPE html> <!-- Говорим браузеру: это HTML5 --> <html lang="ru"> <!-- Корневой тег. Язык — русский --> <head> <!-- Паспорт страницы --> <meta charset="UTF-8"> <!-- Кодировка (кириллица, эмодзи) --> <title>Моя страница</title> <!-- Текст во вкладке --> </head> <body> <!-- Начало видимой части --> <h1>Привет, мир!</h1> <!-- Главный заголовок --> <p>Это мой первый сайт</p> <!-- Абзац текста --> </body> </html>

Запомни: HTML — не язык программирования, а язык разметки. Он не считает и не принимает решения. Он лишь описывает, что именно находится на странице: заголовок, абзац, картинка, ссылка.

02

CSS — Красота и стиль

CSS (Cascading Style Sheets — каскадные таблицы стилей) отвечает за внешний вид: цвета, расположение, размеры, анимации.

Аналогия из жизни: Если HTML — это голые стены и окна, то CSS — это дизайнер интерьера: он выбирает цвет обоев, размер мебели, расположение картин. Без CSS сайт выглядит как недостроенный дом — всё на месте, но без «душы».

🎨 Как CSS находит элементы

CSS работает через селекторы — шаблоны-подсказки, которые говорят: «найди элемент с таким именем и измени его внешний вид».

  • h1 { } — выберет все заголовки h1 (как указать «все окна»)
  • .btn { } — элементы с class="btn" (класс — как метка на одежде: можно повесить на любую вещь)
  • #main { } — элемент id="main" (ID — как паспорт: уникальный, только один такой)
style.css
/* Выбираем элемент с class="card" */ .card { background: #ffffff;     /* Белый фон */ padding: 20px;             /* Отступ внутри 20px */ border-radius: 12px;      /* Скруглённые углы */ box-shadow: 0 4px 12px /* Лёгкая тень под элементом */ rgba(0,0,0,0.1);
  transition: 0.3s;        /* Плавная анимация 0.3 сек */ } /* При наведении мыши — поднимаем карточку */ .card:hover { transform: translateY(-4px);  /* Сдвиг вверх 4px */ box-shadow: 0 8px 24px /* Тень сильнее */ rgba(0,0,0,0.15);
}

Flexbox и Grid — два мощных инструмента CSS для раскладки. Flexbox — как раскладывать книги в одну полку (одна линия). Grid — как расставлять мебель по комнате (сетка строк и столбцов).

03

JavaScript — Мозг приложения

JavaScript — язык программирования, который понимает каждый браузер. Он делает страницу живой: реагирует на клики, загружает данные, анимирует.

Аналогия из жизни: HTML и CSS — это статичный плакат. А JavaScript — это электричество и роботы: он оживляет страницу. Нажал кнопку — появилось меню. Ввёл данные — сервер ответил. Прокрутил вниз — появилась новая секция. JavaScript — это то, что превращает «страницу» в «приложение».

⚡ Что умеет JavaScript

  • Манипуляция DOM — менять содержимое, стиль и структуру страницы прямо в браузере. DOM — дерево всех элементов, как оглавление книги.
  • Обработка событий — реагировать на клики, нажатия клавиш, прокрутку, отправку формы. Как кнопка дверного звонка — нажал, и что-то происходит.
  • Запросы к серверу — получать и отправлять данные через API (подробнее — ниже).
  • Анимации — плавные переходы, движущиеся элементы, интерактивные эффекты.
app.js
// Находим кнопку по её ID на странице const btn = document.getElementById('myBtn');

// Находим параграф для вывода текста const output = document.getElementById('output');

// Счётчик кликов — начинаем с нуля let count = 0;

// «Повешали» обработчик: «при клике на кнопку...» btn.addEventListener('click', () => {
  count++;                      // Увеличиваем счётчик на 1 output.textContent =          // Меняем текст на странице: `Нажато ${count} раз!`;    // подставляем число
});

const — константа, значение нельзя переписать (как запечатанный конверт). let — переменная, значение можно менять (как записная книжка). В современном JS почти всегда используй const, если значение не меняется.

04

Responsive — Адаптивный дизайн

Responsive Design — сайт автоматически подстраивается под размер экрана: одна колонка на телефоне, две — на планшете, три — на мониторе.

Аналогия из жизни: Как вода принимает форму сосуда — так и адаптивный сайт принимает форму экрана. На большом мониторе — широкая раскладка, на телефоне — всё узкое и вертикальное. Один код — все устройства.

📱 Как это работает

Основной инструмент — media query (медиа-запрос). Это условие: «Если экран шире 768px — примени эти стILES».

  • min-width — «если экран шире значения» (десктопные стили)
  • max-width — «если экран не шире значения» (мобильные стили)
  • Breakpoints — точки перелома: 480px (телефон), 768px (планшет), 1200px (десктоп). Как отметки на ростомере у врача.
responsive.css
/* Сначала — стили для телефона (mobile-first) */ .grid { display: grid;
  grid-template-columns: 1fr;  /* 1 колонка */ gap: 20px;
} /* Экран шире 768px — 2 колонки */ @media (min-width: 768px) { .grid { grid-template-columns: 1fr 1fr;
  } } /* Экран шире 1200px — 3 колонки */ @media (min-width: 1200px) { .grid { grid-template-columns: 1fr 1fr 1fr;
  } }

Золотое правило: пиши стили «mobile-first» — сначала для маленького экрана, потом добавляй min-width для больших. Так код проще читать и поддерживать.

05

HTTP и HTTPS — Как данные перемещаются

Когда вы открываете сайт, браузер отправляет запрос на сервер и получает ответ. Весь обмен идёт по правилам — протоколам.

Аналогия из жизни: Представьте почту. HTTP — это открытка: вы пишете адрес, кладёте в ящик, почтальон доставляет. Но открытку может прочитать кто угодно по пути. HTTPS — это запечатанный конверт с замком: даже если его перехватят, содержимое не увидят. Замок в адресной строке браузера — это и есть этот «замок».
HTTP

📬 HTTP — Открытая почта

HTTP (HyperText Transfer Protocol — протокол передачи данных). Данные передаются открытым текстом — без шифрования.

  • GET — «Дай мне страницу» (запросить открытку)
  • POST — «Вот мои данные» (отправить анкету)
  • Данные летят открыто — любой перехватчик увидит всё
  • Порт :80 — стандартный «номер двери»
HTTPS

🔒 HTTPS — Защищённая почта

HTTPS (HTTP Secure) — то же самое, но данные зашифрованы с помощью SSL/TLS-сертификата.

  • Данные зашифрованы — перехватчик видит «каракули»
  • Сертификат подтверждает, что сервер — тот, за кого себя выдаёт (как паспорт)
  • Браузеры показывают 🔒 в адресной строке
  • Порт :443 — «номер защищённой двери»

📊 Сравнение

Свойство
HTTP
HTTPS
Шифрование
❌ Нет
✅ Да
Порт
:80
:443
Скорость
Чуть быстрее
Почти одинаково
SEO (поиск)
❌ Хуже
✅ Лучше
Использовать?
Только в dev
Всегда!
request.js
// ===== HTTP (небезопасно) ===== // Данные летят открытым текстом — как открытка fetch('http://example.com/api/user')
  .then(res => res.json());

// ===== HTTPS (безопасно!) ===== // Данные зашифрованы — как запечатанный конверт fetch('https://example.com/api/user')
  .then(res => res.json());

// Разница — всего 4 буквы: "http" → "https" // Но безопасность — на порядок выше!

Правило: всегда используй https:// даже на localhost. Многие браузеры блокируют HTTP-запросы на HTTPS-страницах.

06

REST API — Связь с сервером

API — это «мост» между фронтендом и бэкендом. REST — способ организации этого моста.

Аналогия: Ресторан. Вы — клиент (браузер), кухня — сервер. Между вами — официант (API). Вы не можете забежать на кухню — вы говорите официанту, что хотите, он передаёт заказ на кухню и приносит блюдо обратно. REST — это правила, по которым вы общаетесь с официантом.

🔄 Методы HTTP в REST

GET
Получить данные

«Официант, принесите меню» — запросить список

POST
Создать данные

«Хочу заказать борщ» — добавить новый элемент

PUT
Обновить данные

«Замените салат на суп» — изменить элемент

DELETE
Удалить данные

«Отмените заказ» — удалить элемент

api-request.js
// fetch() — встроенная функция для запросов // async/await — работаем с кодом, который занимает время async function getUsers() { // Отправляем GET-запрос (просим данные) const response = await fetch(
    'https://api.example.com/users' // ↑ обрати внимание: https, не http!
  );

  // Превращаем ответ из JSON в объект JS const data = await response.json();

  // Выводим данные в консоль console.log(data);

  // Проходим по списку пользователей data.forEach(user => { // Добавляем имя в список на странице document.getElementById('list')
      .innerHTML += `<li>${user.name}</li>`;
  });
} getUsers();  // Вызываем — начинаем загрузку

JSON — формат данных, похожий на JS-объект: {"name": "Анна", "age": 20}. 99% современных API обмениваются именно JSON.

07

React — Современные фреймворки

React — JavaScript-библиотека от Meta для создания интерфейсов. Ты описываешь, как должна выглядеть страница, а React обновляет её сам.

Аналогия: Конструктор LEGO. Вместо того чтобы лепить сайт «из глины», ты собираешь его из готовых блоков-компонентов: кнопка, карточка, форма. Каждый блок — самостоятельный, переиспользуемый. Меняешь один блок — обновляется только он.

🧩 Почему React?

  • Компоненты — UI разбивается на маленькие блоки: кнопка, карточка, форма. Как LEGO — собираешь из готовых деталей.
  • JSX — «HTML внутри JavaScript». Знакомый синтаксис разметки прямо в логике.
  • Virtual DOM — React ведёт «чёрновик» страницы в памяти. Обновляет только изменившиеся элементы — быстро и экономно. Как редактор, который правит только ошибки, а не переписывает всю статью.
  • Экосистема — тысячи библиотек: маршрутизация, управление состоянием, формы, анимации.
Counter.jsx
// Импортируем хук useState из библиотеки import { useState } from 'react';

// Компонент — функция, возвращающая JSX export default function Counter() { // useState(0) создаёт переменную = 0 // count — текущее значение // setCount — функция для его изменения const [count, setCount] = useState(0);

  return (
    {/* JSX — HTML-подобный синтаксис */} <div className="counter"> <h2>Счётчик: {count}</h2> {/* Клик → setCount увеличивает count */} <button onClick={() => setCount(count + 1)}>
        Нажми меня
      </button> </div>
  );
}

Другие фреймворки: Vue.js (проще для начала), Angular (от Google, для крупных проектов), Svelte (компилируется без Virtual DOM). React — самый востребованный на рынке труда.

08

Деплой — Запуск в продакшн

Деплой — размещение сайта на реальном сервере, чтобы его видел весь мир. Написал код → загрузил → получил ссылку.

Аналогия: Публикация книги. Написал текст (код) → отдал в типографию (сборка) → книга лежит на полке в магазине (хостинг) → ей присвоен ISBN (домен). Теперь любой желающий может прийти и прочитать.

📦 Сборка

Фреймворки не понимаются браузером напрямую. npm run build собирает проект, оптимизирует, сжимает файлы.

☁️ Хостинг

Vercel или Netlify — бесплатные платформы. Подключи GitHub — сайт обновляется автоматически.

🌐 Домен

Купи домен (mysite.ru), привяжи к хостингу. SSL-сертификат (HTTPS) — бесплатно.

Готово! После деплоя сайт доступен по ссылке https://mysite.vercel.app — делись с друзьями!

🗺️ Твой путь в веб-разработке

HTML

Каркас

CSS

Стили

JavaScript

Логика

Responsive

Адаптив

HTTP/S

Протоколы

REST API

Данные

React

Фреймворк

Деплой

Запуск

Каждый шаг — новый навык. Начни с HTML, практикуйся на маленьких проектах. Через несколько месяцев ты сможешь создавать полноценные веб-приложения!