Разработка и тестирование мобильных дип линков (mobile deep links) — КиберПедия 

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

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Разработка и тестирование мобильных дип линков (mobile deep links)

2022-07-03 54
Разработка и тестирование мобильных дип линков (mobile deep links) 0.00 из 5.00 0 оценок
Заказать работу

https://software-testing.ru/library/testing/mobile-testing/2837-mobile-deep-links

Тестирование сохраненных поисков

https://telegra.ph/Testirovanie-sohranennyh-poiskov-05-20

Тестирование покупок в приложениях

https://developer.apple.com/apple-pay/sandbox-testing/

https://yandex.ru/search/?text=%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B5+%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%BA%D0%B8+%D1%83+apple&lr=38&redircnt=1626946142.1

для андроид приложений тестовые покупки доступны как на девелоп окружениях, так и на проде

Дмитрий Макаренко — Тестирование платежей в Android-приложении

 

 


 

(Не обновлялось) Сети и около них

 

Некоторая база в одной статье: Сети для начинающего IT-специалиста. Обязательная база

https://www.softwaretestinghelp.com/computer-networking-basics/

Клиент - серверная архитектура?

● Сервер – логический процесс, который обеспечивает некоторый сервис по запросу от клиента. Обычно сервер не только выполняет запрос, но и управляет очередностью запросов, буферами обмена, извещает своих клиентов о выполнении запроса и т. д. 

● Клиент – процесс, который запрашивает обслуживание от сервера. Процесс не является клиентом по каким-то параметрам своей структуры, он является клиентом только по отношению к серверу.

● Сеть, протоколы – третий компонент, который обеспечивает обмен информацией между клиентом и сервером.

При взаимодействии клиента и сервера инициатором диалога с сервером, как правило, является клиент, сервер сам не инициирует совместную работу.

 

Технология клиент-сервер - шаблон проектирования, основа для создания веб-приложений, взаимодействие, при котором одна программа (клиент) запрашивает услугу (выполнение какой либо совокупности действий), а другая программа (сервер) ее выполняет.

 

Двухзвенная архитектура клиент-сервер:

● «Толстый клиент»: на сервере реализованы главным образом функции доступа к базам данных, а основные прикладные вычисления выполняются на стороне клиента.

● «Тонкий клиент»: на сервере выполняется основная часть прикладной обработки данных, а на клиентские рабочие станции передаются уже результаты обработки данных для просмотра и анализа пользователем с возможностью их последующей обработки (в минимальном объеме).

 

Многоуровневая архитектура «клиент-сервер»:

Разновидность архитектуры клиент-сервер, в которой функция обработки данных вынесена на один или несколько отдельных серверов. Это позволяет разделить функции хранения, обработки и представления данных для более эффективного использования возможностей серверов и клиентов.

 

Доп. материал:

● О модели взаимодействия клиент-сервер простыми словами. Архитектура «клиент-сервер» с примерами

● Клиент-серверная архитектура в картинках

● Тестировщик с нуля / Урок 11. Клиент-серверная архитектура. Веб-сайт, веб-приложение и веб-сервис

● Клиент-серверная архитектура

 

Уровни/модель OSI?

Модель OSI

Уровень (layer)

Тип данных (PDU) Функции Примеры

Host
layers

7. Прикладной (application)

Данные

Доступ к сетевым службам HTTP, FTP, POP3, WebSocket
6. Представления (presentation) Представление и шифрование данных ASCII, EBCDIC
5. Сеансовый (session) Управление сеансом связи RPC, PAP, L2TP
4. Транспортный (transport) Сегменты (segment) /Дейтаграммы (datagram) Прямая связь между конечными пунктами и надежность TCP, UDP, SCTP, PORTS

Media
layers

3. Сетевой (network) Пакеты (packet) Определение маршрута и логическая адресация IPv4, IPv6, IPsec, AppleTalk
2. Канальный (data link) Биты (bit)/ Кадры (frame) Физическая адресация PPP, IEEE 802.22, Ethernet, DSL, ARP, сетевая карта.
1. Физический (physical) Биты (bit) Работа со средой передачи, сигналами и двоичными данными USB, кабель («витая пара», коаксиальный, оптоволоконный), радиоканал

 

Вместо OSI в реальности актуальнее знать TCP/IP. Тестировщики и разработчики почти всегда работают на прикладном уровне. Ниже может быть только тестирование VoIP и т.п.

Доп. материал:

Модель OSI - 7 уровней за 7 минут

 

HTTP

HTTP — широко распространенный протокол передачи данных, изначально предназначенный для передачи гипертекстовых документов (то есть документов, которые могут содержать ссылки, позволяющие организовать переход к другим документам), сейчас же для любых данных.

Протокол HTTP предполагает использование клиент-серверной структуры передачи данных. Клиентское приложение формирует запрос и отправляет его на сервер, после чего серверное ПО обрабатывает данный запрос, формирует ответ и передает его обратно клиенту.

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

У HTTP есть один недостаток: данные передаются в открытом виде и никак не защищены. На пути из точки А в точку Б информация в интернете проходит через десятки промежуточных узлов, и, если хоть один из них находится под контролем злоумышленника, данные могут перехватить. То же самое может произойти, когда вы пользуетесь незащищенной сетью Wi-Fi, например, в кафе. Для установки безопасного соединения используется протокол HTTPS с поддержкой шифрования.

Защиту данных в HTTPS обеспечивает криптографический протокол SSL/TLS, который шифрует передаваемую информацию. По сути этот протокол является оберткой для HTTP. Он обеспечивает шифрование данных и делает их недоступными для просмотра посторонними. Протокол SSL/TLS хорош тем, что позволяет двум незнакомым между собой участникам сети установить защищенное соединение через незащищенный канал. При установке безопасного соединения по HTTPS ваш компьютер и сервер сначала выбирают общий секретный ключ, а затем обмениваются информацией, шифруя ее с помощью этого ключа. Общий секретный ключ генерируется заново для каждого сеанса связи. Его нельзя перехватить и практически невозможно подобрать — обычно это число длиной более 100 знаков. Этот одноразовый секретный ключ и используется для шифрования всего общения браузера и сервера. Казалось бы, идеальная система, гарантирующая абсолютную безопасность соединения. Однако для полной надежности ей кое-чего не хватает: гарантии того, что ваш собеседник именно тот, за кого себя выдает. Для этой гарантии существует сертификат.

Вам как пользователю сертификат не нужен, но любой сервер (сайт), который хочет установить безопасное соединение с вами, должен его иметь. Сертификат подтверждает две вещи: 1) Лицо, которому он выдан, действительно существует и 2) Оно управляет сервером, который указан в сертификате. Выдачей сертификатов занимаются центры сертификации — что-то вроде паспортных столов. Как и в паспорте, в сертификате содержатся данные о его владельце, в том числе имя (или название организации), а также подпись, удостоверяющая подлинность сертификата. Проверка подлинности сертификата — первое, что делает браузер при установке безопасного HTTPS-соединения. Обмен данными начинается только в том случае, если проверка прошла успешно.

HTTP/2 стал первым бинарным протоколом. Если сравнивать его с прошлой версией протокола, то здесь разработчики поменяли методы распределения данных на фрагменты и их отправку от сервера к пользователю и наоборот. Новая версия протокола позволяет серверам доставлять информацию, которую клиент пока что не запросил. Это было внедрено с той целью, чтобы сервер сразу же отправлял браузеру для отображения документов дополнительные файлы и избавлял его от необходимости анализировать страницу и самостоятельно запрашивать недостающие файлы.

 

Еще одно отличие http 2.0 от версии 1.1 – мультиплексирование запросов и ответов для решения проблемы блокировки начала строки, присущей HTTP 1.1. Еще в новом протоколе можно сжимать HTTP заголовки и вводить приоритеты для запросов.

 

Доп. материал:

● HTTP для тестировщиков

● Официальная документация

● Обзор протокола HTTP

● Отличия http 1.1 и http/2

● В чем разница между http/1.1 и http/2?

● Чем опасна ошибка смешанного контента на сайте

● Что такое смешанное содержимое (mixed content) и как его исправить

Компоненты HTTP

HTTP определяет следующую структуру запроса (request):

● стартовая строка (starting line) — определяет тип сообщения, имеет вид Метод URI HTTP/Версия протокола, например GET /web-programming/index.html HTTP/1.1

● заголовки запроса (header fields) — характеризуют тело сообщения, параметры передачи и прочие сведения

● тело сообщения (body) — необязательное

HTTP определяет следующую структуру ответного сообщения (response):

● строка состояния (status line), включающая код состояния и сообщение о причине

● поля заголовка ответа (header fields)

● дополнительное тело сообщения (body)

 

Доп. материал:

● Протокол HTTP

● Заголовки HTTP

Методы HTTP-запроса

Метод, используемый в HTTP-запросе, указывает, какое действие вы хотите выполнить с этим запросом. Раньше хватало только GET, т.к. считалось, что вы можете хотеть от сервера только получить ответ. Но сейчас вам может понадобиться отредактировать профиль, удалить пост в соц. сети и т.п. Тогда для удобства были созданы различные методы. Вот основные:

● GET: получить подробную информацию о ресурсе

● POST: создать новый ресурс

● PUT: обновить существующий ресурс

● DELETE: Удалить ресурс

 Абсолютно любой веб-сервер должен работать, по крайней мере с двумя методами GET и HEAD. Если сервер не смог определить метод, указанный в заголовке запроса клиента, он должен вернуть код статуса 501, если-же метод серверу известен, но неприменим к данному ресурсу, будет возвращен код статуса 405. Как в первом, так и во втором случае, сервер должен включить в свой ответ, заголовок Allow со списком методов, которые он поддерживает.

 

Метод OPTIONS

Данный метод используется для выяснения поддерживаемых веб-сервером возможностей или параметров соединения с конкретным ресурсом. Сервер включает в ответный запрос заголовок Allow, со списком поддерживаемых методов и возможно информацию о поддерживаемых расширениях. Тело запроса клиента, содержит информацию об интересующих его данных, но на данном этапе формат тела и порядок работы с ним, не определен, пока, сервер должен его игнорировать. С ответным запросом сервера, происходит аналогичная ситуация.

 

Что-бы выяснить возможности сервера, клиент должен указать в запросе URI, символ - "*", то есть данный запрос к серверу выглядит как: OPTIONS * HTTP/1.1. Кроме прочего, данный запрос может быть использован для проверки работоспособности сервера и поддержки им протокола HTTP, версии 1.1. Результаты данного запроса не кэшируются.

 

Метод GET

Метод GET, применяется для запроса конкретного ресурса. Так-же с помощью GET, может быть инициирован некий процесс, при этом, в тело ответа, включается информация о ходе выполнения инициированного запросом действия.

 

Параметры для выполнения запроса, передаются в URI запрашиваемого ресурса, после символа "?". Запрос в таком случае выглядит примерно так: GET /some/resource?param1=val1&param2=val2 HTTP/1.1.

 

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

 

Кроме вышесказанного, существуют еще два вида метода GET, это:

условный GET, содержащий заголовки If-Modified-Since, If-Match, If-Range и им подобные,

Частичный GET, содержащий заголовок Range с указанием байтового диапазона данных, которые сервер должен отдать. Данный вид запроса используется для докачки и организации многопоточных закачек.

 

Порядок работы с этими подвидами запроса GET, стандартами определен отдельно.

 

Метод HEAD

Данный метод, аналогичен методу GET, с той лишь разницей, что сервер не отправляет тело ответа. Метод HEAD, как правило используется для получения метаданных ресурса, проверки URL (есть-ли указанный ресурс на самом деле) и для выяснения факта изменения ресурса с момента последнего обращения к нему.

 

Заголовки ответа могут быть закэшированы, при несоответствии метаданных и информации в кэше, копия ресурса помечается как устаревшая.

 

Метод POST

Метод POST, используется для передачи пользовательских данных на сервер, указанному ресурсу. Примером может послужить HTML форма с указанным атрибутом Method="POST", для отправки комментария к статье. После заполнения необходимых полей формы, пользователь жмет кнопку "Отправить" и данные, методом POST, передаются серверному сценарию, который в свою очередь выводит их на странице комментариев. Таким-же образом, с помощью метода POST, можно передавать файлы.

 

В отличии от GET, метод POST, не является идемпотентным, то есть неоднократное повторение запроса POST, может выдавать разные результаты. В нашем случае, будет появляться новая копия комментария при каждом запросе.

 

Если в результате запроса методом POST, возвращается код 200 (Ok) или 204 (No Content), в тело ответа сервера, добавляется сообщение о результате выполнения запроса. Например, если был создан ресурс, сервер вернет 201 (Created), указав при этом URI созданного ресурса в заголовке Location.

 

Ответы сервера, на выполнение метода POST, не кэшируются.

 

Метод PUT

Используется для загрузки данных запроса на указанный URI. В случае отсутствия ресурса по указанному в заголовке URI, сервер создает его и возвращает код статуса 201 (Created), если ресурс присутствовал и был изменен в результате запроса PUT, выдается код статуса 200 (Ok) или 204 (No Content). Если какой-то из переданных серверу заголовков Content-*, не опознан или не может быть использован в данной ситуации, сервер возвращает статус ошибки 501 (Not Implemented).

 

Главное различие методов PUT и POST в том, что при методе POST, предполагается, что по указанному URI, будет производиться обработка, передаваемых клиентом данных, а при методе PUT, клиент подразумевает, что загружаемые данные уже соответствуют ресурсу, расположенному по данному URI.

 

Ответы сервера при методе PUT не кэшируются.

 

Метод PATCH

Работает аналогично методу PUT, но применяется только к определенному фрагменту ресурса.

 

Метод DELETE

Удаляет ресурс, расположенный по заданному URI.

 

Вообще по спецификации HTTP из всех методов сервер должен уметь понимать только GET, а остальные на усмотрение. Но при этом и не задано строго, что сервер должен делать при получении запроса. То есть гипотетически вы с помощью одного метода можете делать вообще любую операцию. Однако в этом нет никакого практического смысла. В дальнейшем было введено соглашение REST, определившее структуру построения веб-приложений, в том числе и работу с методами.

Источник: Методы HTTP

Доп. материал:

● Parameter Binding

● HTTP POST with URL query parameters — good idea or not?

● Идемпотентный метод

Различия методов GET и POST

Get:

запрос инфо от сервера

ограничение кол-ва символов: длина url 2048

передача неважных неконфиденц.данных (напр.язык,фильтры)

нет body

данные передаются в url

Get можно использовать как Post, например передавать параметры в строке (?параметр1&параметр2&параметр3..)

Но принято использовать конкретные методы запроса под конкретные задачи

Post:

добавление инфо на сервере

ограничение кол-ва символов (разработчик ставит ограничение, так как можно все поломать, в некоторых случаях), ограничено только срывом соединения клиент-сервер

можно передавать конфиденец.данные

есть body

данные передаются в body

 

Основное состоит в способе передачи данных веб-формы обрабатывающему скрипту, а именно:

● Метод GET отправляет скрипту всю собранную информацию формы как часть URL: http://www.komtet.ru/script.php?login=admin&name=komtet

● Метод POST передает данные таким образом, что пользователь сайта уже не видит передаваемые скрипту данные: http://www.komtet.ru/script.php

Оба метода успешно передают необходимую информацию из веб-формы скрипту, поэтому при выборе того или иного метода, который будет наиболее подходить сайту, нужно учитывать следующие факторы:

● Принцип работы метода GET ограничивает объем передаваемой скрипту информации;

● Так как метод GET отправляет скрипту всю собранную информацию формы как часть URL (то есть в открытом виде), то это может пагубно повлиять на безопасность сайта;

● Страницу, сгенерированную методом GET, можно пометить закладкой (адрес страницы будет всегда уникальный), а страницу, сгенерированную метод POST нельзя (адрес страницы остается неизменным, так как данные в URL не подставляются);

● Используя метод GET можно передавать данные не через веб-форму, а через URL страницы, введя необходимые значения через знак &: http://www.komtet.ru/script.php?login=admin&name=komtet

● Метод POST в отличие от метода GET позволяет передавать запросу файлы;

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


Поделиться с друзьями:

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.057 с.