Similar presentations:
Сетевое взаимодействие
1.
Сетевоевзаимодействие
Ивановский Николай
Никонов Владимир
2.
Сегодня впрограмме
Сетевые протоколы
TCP и UDP
HTTP
Параметры в HTTP
Безопасность в HTTP
REST
3.
Сетевые протоколыПротокол – набор соглашений
Сетевой протокол – набор
соглашений, позволяющий
осуществлять соединение и обмен
данными между двумя и более
включёнными в сеть устройствами.
4.
Сетевые протоколыНабор правил, позволяющий
осуществлять соединение и обмен
данными между двумя и более
включёнными в сеть устройствами.
Браузер
Пети
Браузер
Пети
vk.com
Браузер
Коли
vk.com
Браузер
Коли
5.
Сетевые протоколыНабор правил, позволяющий
осуществлять соединение и обмен
данными между двумя и более
включёнными в сеть устройствами.
Браузер
Пети
vk.com
Браузер
Коли
vk.com
Браузер
Коли
POST /im
Го гулять
Браузер
Пети
6.
Сетевые протоколыНабор правил, позволяющий
осуществлять соединение и обмен
данными между двумя и более
включёнными в сеть устройствами.
Браузер
Пети
vk.com
Браузер
Коли
POST /im
Го гулять
HTTP/1.1 201 CREATED
Браузер
Пети
vk.com
Браузер
Коли
7.
Сетевые протоколыНабор правил, позволяющий
осуществлять соединение и обмен
данными между двумя и более
включёнными в сеть устройствами.
Браузер
Пети
Браузер
Коли
vk.com
POST /im
Го гулять
HTTP/1.1 201 CREATED
GET /im
Браузер
Пети
vk.com
Браузер
Коли
8.
Сетевые протоколыНабор правил, позволяющий
осуществлять соединение и обмен
данными между двумя и более
включёнными в сеть устройствами.
Браузер
Пети
Браузер
Коли
vk.com
POST /im
Го гулять
HTTP/1.1 201 CREATED
GET /im
HTTP/1.1 200 OK
Го гулять
Браузер
Пети
vk.com
Браузер
Коли
9.
Сетевые протоколыЖелтые – поговорим в лекции
Серые – устаревшие или не интересные нам
HTTP
SSH
SOAP
FTP
DNS
SMTP
TCP
UDP
10.
Вопросыtinkoff.ru
11.
TCP - протоколTCP (Transmission Control Protocol) –
сетевой протокол, который
используется для обеспечения
надёжной доставки данных
на транспортном уровне.
12.
ПакетыПакет – минимальная единица
данных, используемая при общении
по TCP
13.
TCP - протоколОтправитель
TCP (Transmission Control Protocol) –
сетевой протокол, который
используется для обеспечения
надёжной доставки данных
на транспортном уровне.
Получатель
Пакет 1
14.
TCP - протоколОтправитель
TCP (Transmission Control Protocol) –
сетевой протокол, который
используется для обеспечения
надёжной доставки данных
на транспортном уровне.
Получатель
Пакет 1
15.
TCP - протоколОтправитель
TCP (Transmission Control Protocol) –
сетевой протокол, который
используется для обеспечения
надёжной доставки данных
на транспортном уровне.
Получатель
Пакет 1
Пакет 2
16.
TCP - протоколОтправитель
TCP (Transmission Control Protocol) –
сетевой протокол, который
используется для обеспечения
надёжной доставки данных
на транспортном уровне.
Получатель
Пакет 1
Пакет 2
17.
TCP - протоколОтправитель
TCP (Transmission Control Protocol) –
сетевой протокол, который
используется для обеспечения
надёжной доставки данных
на транспортном уровне.
Получатель
Пакет 1
Пакет 2
Пакет 2
18.
Где используется TCPпротокол
HTTP
Базы данных
SOAP
Очереди
GRPS
…
19.
Вопросыtinkoff.ru
20.
UDP - протоколUDP (User Datagram Protocol) – более
простой, основанный на
сообщениях протокол без
установления соединения. Доставка
не гарантируется
21.
UDP - протоколUDP (User Datagram Protocol) – более
простой, основанный на
сообщениях протокол без
установления соединения. Доставка
не гарантируется
TCP
22.
UDP - протоколUDP (User Datagram Protocol) – более
простой, основанный на
сообщениях протокол без
установления соединения. Доставка
не гарантируется
UDP
23.
UDP - протоколОтправитель
UDP (User Datagram Protocol) – более
простой, основанный на
сообщениях протокол без
установления соединения. Доставка
не гарантируется
Получатель
Пакет 1
Пакет 2
Пакет 3
24.
UDP - протоколUDP (User Datagram Protocol) – более
простой, основанный на
сообщениях протокол без
установления соединения. Доставка
не гарантируется
25.
Вопросыtinkoff.ru
26.
HTTP – протоколПротокол передачи данных,
изначально — в виде гипертекстовых
документов в формате HTML, в
настоящее время используется для
передачи произвольных данных.
27.
Из чего состоит HTTPзапрос
REQUEST
Client
Server
RESPONSE
28.
Из чего состоит HTTPзапрос
REQUEST
METHOD
POST
HOST
vk.com
RESOURCE
/sendMessage
BODY
”Го гулять”
Client
Server
RESPONSE
29.
Из чего состоит HTTPзапрос
REQUEST
METHOD
POST
HOST
vk.com
RESOURCE
/sendMessage
BODY
”Го гулять”
Client
Server
RESPONSE
STATUS CODE
200
STATUS
OK
DATE
08.04.2021 20:20:12
GMT
BODY
”Сообщение
доставлено”
30.
Адрес запросаHOST - адрес сервера, на который
отправляются запросы
RESOURCE – путь на сервере, по
которому выполняется запрос
31.
BODYТело запроса или ответа
Содержит данные, предназначенные
для обмена между клиентом и
сервером
32.
JSONТекстовый формат обмена данными,
основанный на JavaScript
{
}
"message": "Го гулять",
"files": [
{
"type": "image",
"source": "mem.jpg"
},
{
"type": "document",
"source": "anegdot.docx"
}
]
33.
JSONТекстовый формат обмена данными,
основанный на JavaScript
{
"message": "Го гулять",
"files": [
{
"type": "image",
"source": "mem.jpg"
},
{
"type": "document",
"source": "anegdot.docx"
}
]
}
public class Body{
private List<FilesItem> files;
private String message;
}
public class FilesItem{
private String source;
private String type;
}
34.
Вопросыtinkoff.ru
35.
Методы HTTPtinkoff.ru
36.
МетодыУказывают, какую операцию надо
выполнить над ресурсом
GET
PATCH
POST
DELETE
HEAD
TRACE
PUT
37.
GET• Служит для получения информации
• Не содержит тела
• Может быть вызван из браузера
Request
Method
GET /users/vasya/messages HTTP/1.1
Host: vk.com
Response
Response
body
HTTP/1.1 200 OK
Date: Tue, 08 May 2021 12:41:58 GMT
“Го гулять”
38.
POST• Служит для отправки информации
• Ответ может не содержать тела
Request
Method
Request
body
POST /messages/send HTTP/1.1
Host: vk.com
“Го гулять”
Response
HTTP/1.1 200 OK
Date: Tue, 08 May 2021 12:41:58 GMT
39.
POST• Служит для отправки
информации
на сервер
• Ответ может содержать тело
Request
Method
Request
body
POST /messages/send HTTP/1.1
Host: vk.com
“Го гулять”
Response
Response
body
HTTP/1.1 200 OK
Date: Tue, 08 May 2021 12:41:58 GMT
”Отправлено успешно”
40.
PUT/PATCH• Служит для отправки обновленной
информации на сервер
• Ответ может содержать тело
Request
Method
Request
body
PUT /messages/update/<messageId> HTTP/1.1
Host: vk.com
“Го гулять, а то побью”
Response
Response
body
HTTP/1.1 200 OK
Date: Tue, 08 May 2021 12:41:58 GMT
”Обновлено успешно”
41.
DELETE• Служит для удаления информации
• Ответ может содержать тело
Request
Method
Delete /messages/delete/<messageId> HTTP/1.1
Host: vk.com
Response
Response
body
HTTP/1.1 200 OK
Date: Tue, 08 May 2021 12:41:58 GMT
”Уделено успешно”
42.
HTTP методыНазвание
Описание
GET
Получение информации с сервера
POST
Отправка информации на сервер
PATCH/PUT
Отправка информации на сервер для
обновления
DELETE
Удаление информации на сервере
43.
Вопросыtinkoff.ru
44.
Параметры запроса HTTPtinkoff.ru
45.
Path parametersОбязательный параметр - часть resource.
Расположен в строго определенном месте
http://vk.com/messages/{messageID}
46.
Path parametersОбязательный параметр - часть resource.
Расположен в строго определенном месте
http://vk.com/messages/{messageID}
http://vk.com/person/{personID}/profile
47.
Path parametersОбязательный параметр - часть resource.
Расположен в строго определенном месте
http://vk.com/messages/{messageID}
http://vk.com/person/{personID}/profile
http://vk.com/person/{personID}/photo/{photoID}
48.
Path parametersОбязательный параметр - часть resource.
Расположен в строго определенном месте
https://www.mvideo.ru/products/pioneer-mvh-09ub-10012692/specification
49.
Path parametersОбязательный параметр - часть resource.
Расположен в строго определенном месте
https://www.mvideo.ru/products/specification/pioneer-mvh-09ub-10012692
50.
Query parametersНе обязательный параметр.
Расположен после resource.
Отделен знаком «?»
http://vk.com/search?
51.
Query parametersНе обязательный параметр.
Расположен после resource.
Отделен знаком «?»
Представляет собой <Ключ>=<Значение>
http://vk.com/search?city=Ryazan
52.
Query parametersКоличество не ограничено
http://vk.com/search?city=Ryazan
Соединяются через ”&”
http://vk.com/search?city=Ryazan&school=1
http://vk.com/search?city=Ryazan&school=1&...
53.
Query parametersПорядок не важен
http://vk.com/search?city=Ryazan&school=1
http://vk.com/search?school=1&city=Ryazan
54.
Параметры запроса и ответа HTTPtinkoff.ru
55.
HeadersПредназначены для передачи
сервисной информации
Представляют собой пары
<Ключ>:<Значение>
:method: POST
:scheme: https
accept-language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
content-length: 470
content-type: application/x-www-form-urlencoded
origin: https://www.mvideo.ru
56.
Вопросыtinkoff.ru
57.
АвторизацияИспользуется для ограничения
доступа к ресурсам
58.
BASICПередается в хэдере Authorization
Request
Header
GET /users/vasya/messages HTTP/1.1
Host: vk.com
Headers:
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
Response
HTTP/1.1 200 OK
Date: Tue, 08 May 2021 12:41:58 GMT
“Го гулять”
59.
Base64Стандарт кодирования двоичных
данных
DECODED
aladdin:opensesame
ENCODED
YWxhZGRpbjpvcGVuc2VzYW1l
60.
Base64Cтандарт кодирования двоичных
данных
61.
HTTPSПротокол безопасной передачи
данных, поддерживает технологию
шифрования TLS/SSL
62.
HTTPSПротокол безопасной передачи
данных, поддерживает технологию
шифрования TLS/SSL
HTTP
SSL
HTTPS
63.
Лайвбраузингtinkoff.ru
64.
Вопросыtinkoff.ru
65.
Операции над даннымиtinkoff.ru
66.
CRUDАкроним, обозначающий четыре
базовые функции, используемые при
работе с данными: создание (create),
чтение (read), модификация (update),
удаление (delete)
67.
CRUDКакие методы можно отнести к CRUD?
Название
Описание
GET
Получение информации с сервера
POST
Отправка информации на сервер
PATCH/PUT
Отправка информации на сервер для обновления
DELETE
Удаление информации на сервере
68.
CRUDКакие методы можно отнести к CRUD?
CRUD
Названи
е
Описание
READ
GET
Получение информации с сервера
CREATE POST
Отправка информации на сервер
UPDATE PATCH/PU
T
Отправка информации на сервер для
обновления
DELETE
Удаление информации на сервере
DELETE
69.
Зачем?• Договоренности по типам методов
• Удобно проектировать API
• Шаблонный код
• Шаблонные операции
70.
Вопросыtinkoff.ru
71.
Коды ответовКод ответа (состояния) HTTP
показывает, был ли успешно выполнен
определённый HTTP запрос.
72.
Список кодовУспешные 2XX
Код
200
202
Описание
Успешно
Принято в обработку
73.
Список кодовКлиентские ошибки 4XX
Код
400
401
404
Описание
Bad Request
Unauthorized
Не найден ресурс
74.
Список кодовСерверные ошибки 5XX
Код
503
504
Описание
Service Unavailable
Gateway Timeout
75.
Вопросыtinkoff.ru
76.
Resttinkoff.ru
77.
RestREST (Representational State Transfer)
— архитектурный стиль
взаимодействия компонентов
распределённого приложения в сети.
78.
Важно помнить!REST — это НЕ протокол и не
стандарт
Protocol
79.
Принципы RestClient-Server
Stateless
Cache
Uniform Interface
Layered System
Code-On-Demand
80.
Client-ServerВсе REST приложения следуют
клиент серверной архитектуре
81.
StatelessВ период между запросами клиента
никакая информация
о состоянии клиента на сервере не
хранится
Full data
82.
Layered SystemКлиент не знает, общается он с
сервером или с промежуточным
сервисом
83.
Лайвбраузингtinkoff.ru
84.
Домашнее заданиеНужно проверить работу методов в petstore.
Сделать коллекцию с папками по методам.
В папке с методом должны быть подпапки с проверками, каждая
подпапка - это отдельная проверка.
Методы, которым необходима проверка
•POST /pet
•GET /pet/{petId}
•PUT /pet
•DELETE /pet/{petId}
85.
ЛайвPostmanингtinkoff.ru
86.
СпасибоTelegram: @Ivanivskiy
Ивановский Николай
tinkoff.ru