Академический Документы
Профессиональный Документы
Культура Документы
Сервер это мощная машина в которой хранится вся логика нашего приложения на которой
выполняется весь программный код. Это дает преимущество тому, что наше приложение,
например, которое мы разработали могут запускать клиенты даже со слабой машины.
Например, достаточно того, чтобы на компьютере или телефоне поддерживался интернет и
можно было слать и получать запросы.
Сервер обрабатывает этот запрос от клиента и уже отдает ему ответ посредством транспорта по
той же сети. Запрос возвращается клиенту, где клиент уже видит результат этого ответа в
понятной для себя форме (клиент видит результат в виде каких-либо кнопок, картинок или как
страницу какого-либо веб-сайта).
Более надежной считается 3-х уровневая клиент-серверная архитектура, потому что она
дополнительно включает отдельный сервер с базой данных.
У нас может быть высоконагруженное приложение, например какая-либо социальная сеть, там
сотни тысяч серверов и в этом случае у нас работает балансировщик.
Клиент отправляет запрос, балансировщик ловит этот запрос и отправляет его на менее
нагруженный сервер — эта схема называется схема горячего резерва.
Схема холодного резерва это когда сервер 1 перестает работать, из-за технических неполадок
(“упал”), тогда сервер 2 включается в работу.
Клиент эта та часть ПО, которая работает у нашего пользователя, к её работе минимальные
требования по железу, что позволяет наше приложение распространить на широкий круг
пользователей. Сервер мощная машина на которой выполняется вся логика программы, весь
программный код. И база данных — это сервер с хранилищем на котором хранится вся
информация о пользователях.
HTTPS – надстройка над протоколом, имеющий шифрование (особенно там где есть платежная
инфа, личная инфа). Он зашифрован, его сложнее взломать.
HTTP работает как протокол запроса-ответа между клиентом и сервером.
Модель TCP/IP – Network сетевой уровень – передача инфы в виде битов и байтов
Transport – TCP протокол (гарантия, что инфа дойдет до пользователя. Например почтовые
сервисы) и UDP протокол (не нужно убеждаться что инфа дошла до юзера, например как в
онлайн играх)
Атрибуты НТТР: Основная часть – служебная информация – версия – хост машина, т.е. сервер
на котором располагается наше приложение
Запросы НТТР:
Два часто используемых метода запроса-ответа между клиентом и сервером: Get и POST.
Передача
данных
происходит в
теле
запроса
Тело запроса
пустое, все
содержимое
находится в
ссылке
PUT – изменения инфы на сервере
DELETE – удаление инфы на сервере
http RESPONCE – версия протокола (1.9 а более новый 2.0 он быстрее), статус кода (1хх
информационные, 2хх успешные, 3хх сообщения о перенаправлении, 4хх ошибки на стороне
клиента, 5хх на стороне сервера), дата отправки ответа, инфа о сервере, полезная нагрузка (это
уже тело ответа)
Еще пример, разработали сайт и хотим, чтобы там всегда отображался прогноз погоды. Тогда
мы подключаем по API функцию с гисметео и у меня на сайте отображается тоже самое, что и
отображается на сайте гисметео. Или на сайте нужна адресная книга. Чтобы её вручную
самостоятельно не изобретать, мы по API можем подключить уже готовую адресную книгу со
всеми улицами и эта адресная книга будет отражаться на сайте, при условии когда
пользователь будет вводить город и улицу, программа будет подсказывать адрес.
Вызов API
Напрямую — внутри системы. Это значит что я могу вызывать API внутри собственной
системы. Например, у меня система включает в себя несколько различных программ,
например авторизация на сайте, выход — это разные API. Чтобы система в целом работала,
одно API внутри моей системы, вызывает API внутри моей системы, но другое API.
Из другой системы — тестировщики, которые чаще всего занимаются тестированием
интеграций одной системы с другой системой. Это когда мы вызываем API из другой системы.
Из примера — это оплата на сайте магазина.
API позволяет сократить затраты на тестирование. API включает в себя логику, например
авторизация на сайте, мы разрабатываем авторизацию на сайте, но у нас еще не готов
графический интерфейс (мы не можем через кнопку на сайте проверить, заполнить все поля),
но мы можем протестировать API без графического интерфейса. Это делается через
специальные программы, например Postman и тестировщик зная, как это всё работает может
без графического интерфейса протестировать API авторизации.
Чтобы не тестировать API вручную можно настроить автотесты, чтобы например раз в час,
раз в сутки, раз в два дня эти автотесты автоматически выполнялись, всё то что мы написали в
Postman. Чаще всего используется язык Java Script.
API можно вызвать косвенно. Это когда пользователь через графический интерфейс сам того не
подозревая вызывает API. Когда пользователь нажимает на кнопку “оплатить”, вызывается
платежная система, пользователь не знает, что это на самом деле другая программа
и вызывается API другой системы, пользователь просто видит на своем интерфейсе, как у него
происходит оплата. А на самом деле он вызывает API, нажимает на кнопку и подает входные
данные, номер своей карты, какую сумму он хочет заплатить. А уже API платежная система ему
отвечает успешная оплата либо нет. Он видит это у себя в графическом интерфейсе.
Общение API
Когда API вызывается внутри системы это общение API называется local API, а когда у нас API
вызывается из другой системы, то это общение API называется remote API. Тестировщики чаще
всего сталкиваются именно с тестированием remote API, когда нужно вызвать API из другой
системы.
IP адрес - уникальный сетевой адрес узла в комп сети, построенный по протоколу IP.
Представляет собой 32-битовое двоичное число либо 128-битовое двоичное число
DNS сервер - система доменных имен, который «переводит» каждый цифровой ip адрес на
понятное буквенное имя (домен). Например вместо гугл писать 192.22.11 – неудобно
HTML
HTML – язык разметки который используется для отображения веб-страниц. Он говорит о том,
какие элементы должны быть на странице и как должны отображаться для пользователя.
Единица информации – «tag», например выделение жирным шрифтом начинается тегом <b>
TEXT <через слеш этим тегом b/>
Тэг <img src=c/pic/lala.jpg/>
<a href=Google.com> Google /a>