HTTP/HTTPS: методы (GET, POST, PUT, DELETE), заголовки, куки

📤 Методы HTTP: GET, POST, PUT, DELETE
Это «действия», которые клиент запрашивает у сервера.

1. GET — «Получить данные»

Что делает: Запрашивает информацию (страницы, картинки, товары).

Пример: Открытие страницы YouTube: GET /videos.

Поиск товара: GET /search?q=кроссовки.

Особенности:
- Данные передаются в URL как query-параметры (видимы в адресной строке).
- Идемпотентный: Повторные запросы не изменяют состояние сервера.

2. POST — «Отправить данные»

Что делает: Передаёт данные на сервер (логины, файлы, формы).

Пример: Регистрация на сайте: POST /register с телом { "name": "John", "email": "john@mail.com" }.

Оплата заказа: POST /payment с данными карты.

Особенности:
- Данные передаются в теле запроса (скрыты от посторонних).
- Неидемпотентный: Повторные запросы создают новые объекты (например, 5 нажатий «Купить» → 5 заказов).

3. PUT — «Обновить данные»

Что делает: Заменяет существующие данные на новые.

Пример: Изменение имени в профиле: PUT /profile с телом { "name": "Alice" }.

Особенности:
- Идемпотентный: Повторные запросы не изменят результат (имя останется «Alice»).

4. DELETE — «Удалить данные»

Что делает: Удаляет информацию на сервере.

Пример: Удаление поста: DELETE /post/123.

Особенности:
- Идемпотентный: Повторные запросы вернут ошибку (пост уже удалён).

🔍 Query-параметры (GET-параметры)

Это пары ключ=значение в URL после знака ?. Используются для фильтрации, поиска и настройки.

Пример:

Copy
https://shop.com/search?query=книги&category=fantasy&page=3
query=книги — поисковый запрос.

category=fantasy — фильтр по жанру.

page=3 — номер страницы.

Где используется:
- Поиск, сортировка, пагинация.
- Настройки языка или темы сайта.

⚠️ Ограничения:
- Нельзя передавать конфиденциальные данные (пароли).
- Максимальная длина URL — ~2048 символов.

📦 Тело запроса (Body)

Это данные, которые передаются внутри запроса (не в URL). Используется в POST, PUT.

Примеры форматов:

- JSON:
json
Copy
{ "username": "john", "password": "123" }

Формы:

- Copy
username=john&password=123
Файлы: Загрузка фото или документа.

Преимущества:
- Безопасность: данные не видны в URL.
- Можно отправлять большие объемы (например, видео).

📝 Заголовки (Headers)

Это «метаданные» запроса и ответа. Они описывают, как обработать данные.

Примеры заголовков:

- User-Agent:

User-Agent: Mozilla/5.0 (iPhone; iOS 16)
«Я — iPhone, покажи мобильную версию сайта».

- Content-Type:

Content-Type: application/json
«Данные в формате JSON».

- Cookie:

Cookie: session_id=abc123

«Вот мой пропуск (куки) для авторизации».

Аналогия:
Заголовки — как этикетка на посылке: «Хрупкое», «Срочно», «Адрес получателя».

🍪 Куки (Cookies)

Это текстовые файлы, которые сервер просит браузер сохранить.

Для чего нужны:
- Авторизация («запомнить меня»).
- Сохранение настроек (тема, язык).
- Трекинг действий (аналитика).

Как работают:
1. При первом входе сервер отправляет куки: Set-Cookie: user_id=123.
2. Браузер сохраняет их.
3. При следующих запросах браузер отправляет куки обратно → сервер «узнаёт» пользователя.

Пример:
Куки theme=dark сохраняют выбор тёмной темы на сайте.

🔄 Идемпотентность

Идемпотентный метод — метод, который при повторных запросах даёт одинаковый результат (не меняет состояние сервера).

Примеры:

- GET: Сколько раз ни запрашивай /profile, данные не изменятся.
- PUT: Обновление имени → 10 запросов = 1 изменение.
- DELETE: Удаление поста → повторные запросы вернут ошибку.

Неидемпотентные методы:

- POST: Каждый запрос создаёт новый объект (например, комментарий).

Зачем это тестировщику?
- Предотвращение дублей (например, двойная оплата).
- Понимание, как система реагирует на повторные действия.

🔧 Практика: смотрим запросы в DevTools

- Откройте браузер → F12 → вкладка Сеть (Network).
- Перезагрузите страницу → вы увидите все GET-запросы (загрузка HTML, CSS, картинок).
- Выполните действие на сайте (например, вход в аккаунт):
- Найдите POST-запрос → посмотрите тело запроса и заголовки.
- Проверьте куки во вкладке Application → Cookies.

Пример задания:

Зайдите на Google → введите запрос «котики».
Найдите в URL параметр q=котики → это GET-запрос с query-параметром.

🚨 Чем опасен HTTP?

- Перехват данных: Злоумышленники могут украсть пароли, номера карт.
- Подмена сайтов: Вас могут перенаправить на фейковый сайт.

Решение: Всегда проверяйте HTTPS (замочек в адресной строке).

📌 Итоги урока

HTTP/HTTPS — протоколы обмена данными (HTTPS шифрует трафик).

Методы HTTP (запомнить):

- GET (получить), POST (отправить), PUT (обновить), DELETE (удалить).
- Query-параметры — фильтрация и поиск через URL.
- Тело запроса — безопасная передача данных в POST/PUT.
- Идемпотентность — повторные запросы безопасны для GET, PUT, DELETE.
- Заголовки — управление обработкой данных.
- Куки — хранение авторизации и настроек.

🌟 Примеры для закрепления:

GET vs POST:
GET: https://api.weather.com?city=Москва → сервер вернет погоду.
POST: Отправка отзыва → данные в теле: {"text": "Отличный товар!"}.

Идемпотентность:
5 запросов PUT /profile с одним именем → имя изменится один раз.
5 запросов POST /order → 5 заказов в базе.

Тестовые вопросы

Для прохождения тестов необходимо войти в свой аккаунт или зарегистрироваться.


Комментарии


Комментарии

Пока нет комментариев.

Для сохранения прогресса и доступа ко всем функциям, пожалуйста, войдите в систему или зарегистрируйтесь.