diff --git a/00 Inbox/Вопросы по Вебу.md b/00 Inbox/Вопросы по Вебу.md index 0178b6e..f3e390b 100644 --- a/00 Inbox/Вопросы по Вебу.md +++ b/00 Inbox/Вопросы по Вебу.md @@ -1,5 +1,5 @@ --- -status: seed +status: processing type: concept tags: [] created: 2025-12-17 @@ -9,6 +9,537 @@ aliases: [] # Вопросы по Вебу +## Теория по блокам + +Опорные заметки: + +- [[IP-адрес]], [[IPv6]], [[Подсети и маска подсети]], [[NAT]], [[DNS]], [[TCP Vs UDP]] +- [[HTTP, HTTPS и HTTP3]], [[Сетевые порты]], [[Веб-аутентификация и авторизация]], [[OAuth 2.0]], [[URI, URL, URN]] +- [[Основы HTML (структура, таблицы, формы)]] +- [[CSS: Основы и селекторы]], [[CSS: Адаптивность, Flexbox и Grid]] +- [[Django Модели и ORM]], [[Django: Представления, шаблоны и CBV]], [[Django: Формы и CUD]] + +### Блок 1. Общие вопросы + +**IP-адрес** - адрес узла в сети. IPv4 записывается как `192.168.1.10`, внутри это 32 бита. IPv6 длиннее, 128 бит, например `2001:db8::1`. + +**Маска подсети** показывает, какая часть IP относится к сети, а какая - к устройству. В `192.168.1.10/24` первые 24 бита - сеть, оставшаяся часть - хост. + +**Приватные IPv4-адреса** используются внутри локальных сетей: `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`. Они не маршрутизируются напрямую в интернете. + +**Localhost** - обращение к самому себе. Обычно это `127.0.0.1`. + +**NAT** переводит внутренний приватный адрес в публичный. Домашний роутер обычно делает PAT: много устройств выходят в интернет через один публичный IP, а различаются по портам. + +**DNS** превращает доменное имя в IP-адрес. Браузер не ходит на `example.com` как на текст - сначала нужно узнать IP через DNS. + +**TCP** устанавливает соединение через `SYN`, `SYN-ACK`, `ACK`, следит за доставкой и порядком данных. Поэтому он подходит для HTTP/HTTPS. + +**HTTP** - протокол запроса и ответа. Клиент отправляет запрос, сервер возвращает ответ. HTTP не хранит состояние сам по себе. + +**GET** обычно получает данные. **POST** обычно отправляет данные в теле запроса: форму, JSON, файл. + +**HTTP-ответ** содержит код состояния: + +- `2xx` - успех; +- `3xx` - перенаправление; +- `4xx` - ошибка клиента; +- `5xx` - ошибка сервера. + +**HTTPS** - это HTTP поверх TLS. Он шифрует трафик и проверяет сервер через сертификат. HTTP обычно использует порт `80`, HTTPS - `443`. + +**HTTP/3** использует QUIC поверх UDP. Смысл методов и кодов HTTP не меняется, меняется транспорт. + +**Идентификация** - пользователь сообщает, кто он. **Аутентификация** - доказывает это. **Авторизация** - система решает, что ему можно. + +**OAuth 2.0** позволяет приложению получить ограниченный доступ без передачи пароля пользователя. Это протокол авторизации, не прямой протокол логина. + +**URI** - общий идентификатор ресурса. **URL** - адрес и способ получить ресурс. **URN** - устойчивое имя без обязательного адреса. + +### Блок 2. HTML + +HTML описывает структуру страницы. Минимальная структура: + +```html + + + + + + Страница + + + Контент + + +``` + +`` содержит служебные данные: `meta`, `title`, `link`, `script`. Видимый контент находится в ``. + +HTML-комментарий: + +```html + +``` + +**Нормальный поток** - стандартная раскладка без flex/grid/position. Блочные элементы идут сверху вниз, строчные - внутри строки. + +**Блочные элементы**: `
`, `

`, `

`, `
`, `
`. Обычно занимают всю строку. + +**Строчные элементы**: ``, ``, ``, ``, ``. Идут внутри текста. + +**Семантические теги** помогают показать смысл: `
`, `