Слайд 2Содержание курса
MVC. Толстый тонкий клиент
![Содержание курса MVC. Толстый тонкий клиент](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-1.jpg)
Слайд 3Архитектура «клиент-сервер»
Двухзвенная:
![Архитектура «клиент-сервер» Двухзвенная:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-2.jpg)
Слайд 4Архитектура «клиент-сервер»
Трехзвенная:
![Архитектура «клиент-сервер» Трехзвенная:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-3.jpg)
Слайд 5Архитектура «клиент-сервер»
Многозвенная:
![Архитектура «клиент-сервер» Многозвенная:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-4.jpg)
Слайд 6Архитектура «клиент-сервер»
Сравнение:
Двухзвенная:
+ простота
- менее надежная
Трехзвенная:
+ гибкая и масштабируемая
+ высокая безопасность
+
![Архитектура «клиент-сервер» Сравнение: Двухзвенная: + простота - менее надежная Трехзвенная: + гибкая](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-5.jpg)
высокая производительность
Слайд 7 «Тонкий» и «Толстый» клиенты
«Тонкий»:
Только для отображения получаемой информации
Все вычисления на сервере
«Толстый»:
Расширенный
![«Тонкий» и «Толстый» клиенты «Тонкий»: Только для отображения получаемой информации Все вычисления](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-6.jpg)
функционал
Большая часть данных обрабатывается на компьютере пользователя
Локальная база данных
Работа в оффлайн режиме
Слайд 9Model
Модель — это бизнес-логика приложения;
Модель обладает знаниями о себе самой и не
![Model Модель — это бизнес-логика приложения; Модель обладает знаниями о себе самой](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-8.jpg)
знает о контроллерах и представлениях;
Для некоторых проектов модель — это просто слой данных (DAO, база данных, XML-файл);
Для других проектов модель — это менеджер базы данных, набор объектов или просто логика приложения;
Слайд 10View
В представлении реализуется отображение данных, которые получаются от модели любым способом;
В некоторых
![View В представлении реализуется отображение данных, которые получаются от модели любым способом;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-9.jpg)
случаях, представление может иметь код, который реализует некоторую бизнес-логику.
Примеры представления: HTML-страница, WPF форма, Windows Form.
Слайд 11Controller
Контроллер определяет, какие представление должно быть отображено в данный момент;
События представления могут
![Controller Контроллер определяет, какие представление должно быть отображено в данный момент; События](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-10.jpg)
повлиять только на контроллер.контроллер может повлиять на модель и определить другое представление.
Возможно несколько представлений только для одного контроллера;
Слайд 14TCP/IP Трехстороннее рукопожатие
1. Клиентский компьютер отправляет пакет SYN на сервер через Интернет,
![TCP/IP Трехстороннее рукопожатие 1. Клиентский компьютер отправляет пакет SYN на сервер через](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-13.jpg)
спрашивая, открыт ли он для новых подключений.
2. Если сервер имеет открытые порты, которые могут принимать и инициировать новые подключения, он ответит ACKnowledgment пакета SYN, используя пакет SYN / ACK.
3. Клиент получит пакет SYN / ACK с сервера и подтвердит его, отправив пакет ACK.
Затем устанавливается TCP-соединение для передачи данных!
Слайд 15Алгоритмы балансировки
Round Robin
Weighted Round Robin
Least Connections
Destination Hash Scheduling и Source Hash Scheduling
Sticky Sessions
![Алгоритмы балансировки Round Robin Weighted Round Robin Least Connections Destination Hash Scheduling](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-14.jpg)
Слайд 16Основные сетевые протоколы
TCP/IP
Http/Https
FTP
POP3
SMPT
TELNET
SSH
JDBC
JMS
![Основные сетевые протоколы TCP/IP Http/Https FTP POP3 SMPT TELNET SSH JDBC JMS](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-15.jpg)
Слайд 17Http протокол
Каждое HTTP-сообщение состоит из трёх частей, которые передаются в указанном порядке:
Стартовая
![Http протокол Каждое HTTP-сообщение состоит из трёх частей, которые передаются в указанном](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-16.jpg)
строка (Starting line) — определяет тип сообщения;
Заголовки (Headers) — характеризуют тело сообщения, параметры передачи и прочие сведения;
Тело сообщения (Message Body) — непосредственно данные сообщения. Обязательно должно отделяться от заголовков пустой строкой.
Слайд 18Методы http запроса
OPTIONS
GET
HEAD
POST
PUT
PATCH
DELETE
TRACE
CONNECT
![Методы http запроса OPTIONS GET HEAD POST PUT PATCH DELETE TRACE CONNECT](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-17.jpg)
Слайд 20HTTP Headers
В зависимости от того, где эти заголовки могут находиться, они разделяются
![HTTP Headers В зависимости от того, где эти заголовки могут находиться, они](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-19.jpg)
на:
General Headers (Основные заголовки) — должны быть и в запросах и в ответах клиента и сервера.
Request Headers (Заголовки запроса) — используются только в запросах клиента.
Response Headers (Заголовки ответа) — используются только в ответах сервера.
Entity Headers (Заголовки сущности) — сопровождают каждую сущность сообщения.
Слайд 21Тело сообщения
тело сообщения — это сами данные, которые передаются в запросе. Тело сообщения
![Тело сообщения тело сообщения — это сами данные, которые передаются в запросе.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-20.jpg)
– это необязательный параметр и может отсутствовать.
Слайд 22Cookie
Ку́ки — небольшой фрагмент данных, отправленный веб-сервером и хранимый на компьютере пользователя. Веб-клиент всякий раз при попытке
![Cookie Ку́ки — небольшой фрагмент данных, отправленный веб-сервером и хранимый на компьютере](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/919840/slide-21.jpg)
открыть страницу соответствующего сайта пересылает этот фрагмент данных веб-серверу в составе HTTP-запроса. Применяется для сохранения данных на стороне пользователя, на практике обычно используется для:
аутентификации пользователя;
хранения персональных предпочтений и настроек пользователя;
отслеживания состояния сеанса доступа пользователя;
ведения статистики о пользователях