vault backup: 2026-06-01 15:11:31
This commit is contained in:
Vendored
+6
-4
File diff suppressed because one or more lines are too long
@@ -1,7 +1,9 @@
|
||||
---
|
||||
created: 2026-06-01
|
||||
updated: 2026-06-01
|
||||
---
|
||||
|
||||
# Экзамен — Разработка веб-ориентированных информационных систем
|
||||
|
||||
> Временная заметка для экспорта в PDF. Удалить после использования.
|
||||
|
||||
---
|
||||
|
||||
## Блок 1. Общие вопросы
|
||||
@@ -176,17 +178,18 @@ $$340\ 282\ 366\ 920\ 938\ 463\ 463\ 374\ 607\ 431\ 768\ 211\ 456 \text{ адр
|
||||
|
||||
### Localhost и порты
|
||||
|
||||
**localhost** — стандартное доменное имя для loopback-адреса `127.0.0.1` (IPv4) или `::1` (IPv6). Означает «этот же компьютер».
|
||||
**localhost** — стандартное доменное имя для loopback-адреса `127.0.0.1` (IPv4) или `::1` (IPv6). Означает "этот же компьютер".
|
||||
|
||||
**Стандартные порты:**
|
||||
| Протокол | Порт |
|
||||
| --- | --- |
|
||||
| HTTP | 80 |
|
||||
| HTTPS | 443 |
|
||||
| FTP | 21 |
|
||||
| SSH | 22 |
|
||||
| DNS | 53 |
|
||||
| SMTP | 25 |
|
||||
|
||||
| Протокол | Порт |
|
||||
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---- |
|
||||
| HTTP | 80 |
|
||||
| HTTPS | 443 |
|
||||
| FTP | 21 |
|
||||
| SSH | 22 |
|
||||
| DNS | 53 |
|
||||
| SMTP | 25 |
|
||||
|
||||
---
|
||||
|
||||
@@ -204,13 +207,14 @@ Content-Type: application/json
|
||||
```
|
||||
|
||||
**Основные методы:**
|
||||
| Метод | Назначение |
|
||||
|---|---|
|
||||
| GET | Получить ресурс |
|
||||
| POST | Создать / отправить данные |
|
||||
| PUT | Заменить ресурс целиком |
|
||||
| PATCH | Частично обновить |
|
||||
| DELETE | Удалить |
|
||||
|
||||
| Метод | Назначение |
|
||||
| ------ | -------------------------- |
|
||||
| GET | Получить ресурс |
|
||||
| POST | Создать / отправить данные |
|
||||
| PUT | Заменить ресурс целиком |
|
||||
| PATCH | Частично обновить |
|
||||
| DELETE | Удалить |
|
||||
|
||||
**Структура HTTP-ответа:**
|
||||
```
|
||||
@@ -221,13 +225,14 @@ Content-Type: text/html
|
||||
```
|
||||
|
||||
**Коды ответов:**
|
||||
| Диапазон | Смысл | Примеры |
|
||||
|---|---|---|
|
||||
| 1xx | Информационные | 100 Continue |
|
||||
| 2xx | Успех | 200 OK, 201 Created, 204 No Content |
|
||||
| 3xx | Перенаправление | 301 Moved Permanently, 302 Found |
|
||||
| 4xx | Ошибка клиента | 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found |
|
||||
| 5xx | Ошибка сервера | 500 Internal Server Error, 503 Service Unavailable |
|
||||
|
||||
| Диапазон | Смысл | Примеры |
|
||||
| -------- | --------------- | --------------------------------------------------------------- |
|
||||
| 1xx | Информационные | 100 Continue |
|
||||
| 2xx | Успех | 200 OK, 201 Created, 204 No Content |
|
||||
| 3xx | Перенаправление | 301 Moved Permanently, 302 Found |
|
||||
| 4xx | Ошибка клиента | 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found |
|
||||
| 5xx | Ошибка сервера | 500 Internal Server Error, 503 Service Unavailable |
|
||||
|
||||
**HTTPS** — HTTP поверх TLS/SSL. Шифрует передачу данных; порт 443. Сертификат подтверждает подлинность сервера.
|
||||
|
||||
@@ -257,8 +262,8 @@ URL ⊆ URI; URN ⊆ URI.
|
||||
### Идентификация, аутентификация, авторизация
|
||||
|
||||
- **Идентификация** — присвоение субъектам уникальных идентификаторов (логин, email).
|
||||
- **Аутентификация** — проверка подлинности: «ты действительно тот, кем представляешься?» (пароль, токен, биометрия).
|
||||
- **Авторизация** — проверка прав: «что тебе разрешено делать?» (роли, разрешения).
|
||||
- **Аутентификация** — проверка подлинности: "ты действительно тот, кем представляешься?" (пароль, токен, биометрия).
|
||||
- **Авторизация** — проверка прав: "что тебе разрешено делать?" (роли, разрешения).
|
||||
|
||||
**Модель CIA:**
|
||||
- **Конфиденциальность** — данные недоступны неавторизованным.
|
||||
@@ -445,18 +450,19 @@ URL ⊆ URI; URN ⊆ URI.
|
||||
- `<label for="id">` — подпись к полю (клик по label фокусирует input).
|
||||
|
||||
**Типы `<input>`:**
|
||||
| `type` | Назначение |
|
||||
|---|---|
|
||||
| `text` | Обычная строка |
|
||||
| `password` | Пароль (символы скрываются) |
|
||||
| `email` | Email с базовой проверкой формата |
|
||||
| `number` | Числовой ввод |
|
||||
| `checkbox` | Флажок (можно выбрать несколько) |
|
||||
| `radio` | Выбор одного из группы (одинаковый `name`) |
|
||||
| `file` | Загрузка файла |
|
||||
| `date` | Выбор даты |
|
||||
| `hidden` | Скрытое поле |
|
||||
| `submit` | Кнопка отправки |
|
||||
|
||||
| `type` | Назначение |
|
||||
| ---------- | ------------------------------------------ |
|
||||
| `text` | Обычная строка |
|
||||
| `password` | Пароль (символы скрываются) |
|
||||
| `email` | Email с базовой проверкой формата |
|
||||
| `number` | Числовой ввод |
|
||||
| `checkbox` | Флажок (можно выбрать несколько) |
|
||||
| `radio` | Выбор одного из группы (одинаковый `name`) |
|
||||
| `file` | Загрузка файла |
|
||||
| `date` | Выбор даты |
|
||||
| `hidden` | Скрытое поле |
|
||||
| `submit` | Кнопка отправки |
|
||||
|
||||
```html
|
||||
<fieldset>
|
||||
@@ -806,18 +812,19 @@ class Book(models.Model):
|
||||
blank=True)
|
||||
```
|
||||
|
||||
- **`ForeignKey`** — «один ко многим»: у одного автора много книг.
|
||||
- **`OneToOneField`** — «один к одному».
|
||||
- **`ManyToManyField`** — «многие ко многим»; Django автоматически создаёт промежуточную таблицу.
|
||||
- **`ForeignKey`** — "один ко многим": у одного автора много книг.
|
||||
- **`OneToOneField`** — "один к одному".
|
||||
- **`ManyToManyField`** — "многие ко многим"; Django автоматически создаёт промежуточную таблицу.
|
||||
|
||||
**`on_delete`:**
|
||||
| Значение | Поведение |
|
||||
|---|---|
|
||||
| `CASCADE` | Удалить текущую запись вместе со связанной |
|
||||
| `PROTECT` | Запретить удаление, пока есть ссылки |
|
||||
| `SET_NULL` | Записать `NULL` (нужен `null=True`) |
|
||||
| `SET_DEFAULT` | Записать значение по умолчанию |
|
||||
| `DO_NOTHING` | Ничего не делать |
|
||||
|
||||
| Значение | Поведение |
|
||||
| ------------- | ------------------------------------------ |
|
||||
| `CASCADE` | Удалить текущую запись вместе со связанной |
|
||||
| `PROTECT` | Запретить удаление, пока есть ссылки |
|
||||
| `SET_NULL` | Записать `NULL` (нужен `null=True`) |
|
||||
| `SET_DEFAULT` | Записать значение по умолчанию |
|
||||
| `DO_NOTHING` | Ничего не делать |
|
||||
|
||||
**`related_name`** — имя обратной связи: `author.books.all()`.
|
||||
|
||||
@@ -1002,13 +1009,14 @@ urlpatterns = [
|
||||
```
|
||||
|
||||
**Конвертеры пути:**
|
||||
| Конвертер | Тип | Пример URL |
|
||||
|---|---|---|
|
||||
| `<str:name>` | Строка без `/` | `/user/ivan/` |
|
||||
| `<int:pk>` | Целое положительное | `/post/42/` |
|
||||
| `<slug:slug>` | Буквы, цифры, `_`, `-` | `/tag/django-orm/` |
|
||||
| `<uuid:id>` | UUID | `/item/075194d3-...` |
|
||||
| `<path:subpath>` | Строка с `/` | `/files/a/b/c.txt` |
|
||||
|
||||
| Конвертер | Тип | Пример URL |
|
||||
| ---------------- | ---------------------- | -------------------- |
|
||||
| `<str:name>` | Строка без `/` | `/user/ivan/` |
|
||||
| `<int:pk>` | Целое положительное | `/post/42/` |
|
||||
| `<slug:slug>` | Буквы, цифры, `_`, `-` | `/tag/django-orm/` |
|
||||
| `<uuid:id>` | UUID | `/item/075194d3-...` |
|
||||
| `<path:subpath>` | Строка с `/` | `/files/a/b/c.txt` |
|
||||
|
||||
**`re_path`** — маршрут с регулярным выражением:
|
||||
```python
|
||||
|
||||
Reference in New Issue
Block a user