Клиент

Оригинальное название: client

Коротко

Программа или устройство, которое само отправляет запрос серверу и получает ответ: браузер, мобильное приложение, скрипт, другой сервис.

Что такое «Клиент»

В клиент-серверной модели роли распределены по тому, кто начинает разговор. Клиент инициирует запрос, сервер ждёт обращений и отвечает. Одна и та же программа может выступать в обеих ролях: сайт на PHP — сервер для браузера посетителя, но клиент, когда сам обращается к API платёжной системы или CRM.

Самый привычный клиент — веб-браузер. Кроме него, это мобильные приложения, почтовые программы, боты в мессенджерах, консольные утилиты вроде curl и серверные скрипты, которые забирают данные у других сервисов.

Пример: что отправляет клиент

Запрос браузера или любого HTTP-клиента — это текст с методом, адресом и заголовками. Например, так клиент просит у сайта на WordPress пять последних записей через REST API:

GET /wp-json/wp/v2/posts?per_page=5 HTTP/1.1
Host: example.ru
Accept: application/json
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)

Заголовок User-Agent сообщает, что за клиент пришёл, но это лишь слова самого клиента: подделать его может любой скрипт.

Тонкий и толстый клиент

Тонкий клиент почти ничего не делает сам: показывает то, что прислал сервер. Классический сайт с серверной генерацией страниц — пример тонкого клиента. Толстый клиент берёт на себя логику: одностраничное приложение на JavaScript само строит интерфейс, хранит состояние и обращается к серверу только за данными. Оно быстрее реагирует на действия пользователя, но тяжелее загружается и сложнее для поисковой индексации.

Почему клиенту нельзя доверять

Всё, что пришло от клиента, может быть подделано: цена в форме заказа, скрытое поле, cookie, заголовок, проверка на JavaScript. Проверки в браузере нужны для удобства — подсказать, что телефон введён неверно. Но решающая проверка всегда повторяется на сервере. Классическая уязвимость интернет-магазина — сервер берёт цену товара из запроса клиента, а не из своей базы, и покупатель оформляет заказ за копейки.

Обновлено:

Все термины раздела «Backend»

Что будем искать? Например,Продвижение