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 заказов в базе.
Тестовые вопросы
Для прохождения тестов необходимо войти в свой аккаунт или зарегистрироваться.
Комментарии
Пока нет комментариев.
Комментарии