лекция. Лекция 3 WEB Технологии. Лекция 3 web технологии
Скачать 1.33 Mb.
|
Лекция 3 WEB Технологии WEB Технологии Веб-технологии – представляют собой комплекс технических, коммуникационных, программных методов решения задач организации совместной деятельности пользователей с применением сети Интернет. Первое знакомство с WEB технологиями стоит начать со знакомства с сетевой моделью OSI. Модель Open Systems Interconnection (OSI) – это скелет, фундамент и база всех сетевых сущностей. Модель определяет сетевые протоколы, распределяя их на 7 логических уровней. Важно отметить, что в любом процессе, управление сетевой передачей переходит от уровня к уровню, последовательно подключая протоколы на каждом из уровней. Нижние уровни отвечают за физические параметры передачи, такие как электрические сигналы. Да – да, сигналы в проводах передаются с помощью представления в токи. Токи представляются в виде последовательности единиц и нулей (1 и 0), затем, данные декодируются и маршрутизируются по сети. Более высокие уровни охватывают запросы, связанные с представлением данных. Условно говоря, более высокие уровни отвечают за сетевые данные с точки зрения пользователя. Модель OSI была изначально придумана как стандартный подход, архитектура или паттерн, который бы описывал сетевое взаимодействие любого сетевого приложения. Рассмотрим каждый уровень Модели OSI подробнее: Уровень. Физический. Единицей нагрузки (PDU – protocol data unit) здесь является бит. Кроме единиц и нулей физический уровень не знает ничего. На этом уровне работают провода, патч панели, сетевые концентраторы (хабы, которые сейчас уже сложно найти в привычных нам сетях), сетевые адаптеры. Именно сетевые адаптеры и ничего более из компьютера. Сам сетевой адаптер принимает последовательность бит и передает её дальше. Уровень. Канальный (data link). PDU - кадр (frame). На этом уровне появляется адресация. Адресом является MAC адрес. Канальный уровень ответственен за доставку кадров адресату и их целостность. В привычных нам сетях на канальном уровне работает протокол ARP. Адресация второго уровня работает только в пределах одного сетевого сегмента и ничего не знает о маршрутизации - этим занимается вышестоящий уровень. Соответственно, устройства, работающие на L2 - коммутаторы, мосты и драйвер сетевого адаптера. Уровень. Сетевой (network). PDU пакет (packet). Наиболее распространенным протоколом тут является IP. Адресация происходит по IP-адресам, которые состоят из 32 битов. Протокол маршрутизируемый, то есть пакет способен попасть в любую часть сети через какое-то количество маршрутизаторов. На L3 работают маршрутизаторы. Уровень. Транспортный. PDU сегмент/дейтаграмма. На этом уровне появляются понятия портов. Тут трудятся TCP и UDP. Протоколы этого уровня отвечают за прямую связь между приложениями и за надежность доставки информации. Например, TCP умеет запрашивать повтор передачи данных в случае, если данные приняты неверно или не все. Так же TCP может менять скорость передачи данных, если сторона приема не успевает принять всё. Уровень. Сеансовый. PDU данные. Управляет сеансом связи, обменом информации, правами. Протоколы - L2TP, PPTP. Уровень. Представительский. PDU данные. Преставление и шифрование данных. JPEG, ASCII, MPEG. Уровень. Прикладной. PDU данные. Самый многочисленный и разнообразный уровень. На нем выполняются все высокоуровневые протоколы. Такие как POP, SMTP, RDP, HTTP и т.д. Протоколы здесь не должны задумываться о маршрутизации или гарантии доставки информации - этим занимаются нижестоящие уровни. На 7 уровне необходима лишь реализации конкретных действий, например получение html-кода или email-сообщения конкретному адресату. Клиент-серверная архитектура Термин «клиент-серверная архитектура» – тип компонентно-коннекторной архитектуры, в которой сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами. Клиент – локальный компьютер на стороне виртуального пользователя, который выполняет отправку запроса к серверу для возможности предоставления данных или выполнения определенной группы системных действий. Сервер – очень мощный компьютер или специальное системное оборудование, которое предназначается для разрешения определенного круга задач по процессу выполнения программных кодов. Он выполняет работы сервисного обслуживания по клиентским запросам, предоставляет пользователям доступ к определенным системным ресурсам, сохраняет данные или БД. Это может быть вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами. Клиентские функции - отправка запросов и отображение результатов. Серверные функции - обработка запросов. Основная причина разделения на клиент и сервер – это снижение затрат. Особенности такой модели заключаются в том, что пользователь отправляет определенный запрос на сервер, где тот системно обрабатывается и конечный результат отсылается клиенту. В возможности сервера входит одновременное обслуживание сразу нескольких клиентов. Если одновременно поступает более одного запроса, то такие запросы устанавливаются в определенную очередь и сервером выполняются по очереди. Порой запросы могут иметь свои собственные приоритеты. Часть запросов с более высокими приоритетами будут постоянно выполняться в первоочередном порядке! Параметры, которые могут реализоваться на стороне сервера: Хранение, защита и доступ к данным; Работа с поступающими клиентскими запросами; Процесс отправки ответа клиенту. Параметры, которые могут реализоваться на стороне клиента: Площадка по предоставлению пользовательского графического интерфейса; Формулировка запроса к серверу и его последующая отправка; Получение итогов запроса и отправка дополнительной группы команд (запросы на добавление, обновление информации, удаление группы данных). Архитектура системы клиент-сервер формулирует принципы виртуального общения между локальными компьютерами, а все правила и принципы взаимодействия находятся внутри протокола. Сетевой протокол – набор правил и действий (очерёдности действий), позволяющий осуществлять соединение и обмен данными между двумя и более включёнными в сеть устройствами. ВИДЫ СЕТЕВЫХ ПРОТОКОЛОВ TCP/IP – совокупность протоколов передачи информации. TCP/IP – это особое обозначение всей сети, которая функционирует на основе протоколов TCP, а также IP. TCP – вид протокола, который является связующим звеном для установки качественного соединения между 2 устройствами, передачи данных и верификации их получения. IP – протокол, в функции которого входит корректность доставки сообщений по выбранному адресу. При этом информация делится на пакеты, которые могут поставляться по-разному. MAC – вид протокола, на основании которого происходит процесс верификации сетевых устройств. Все устройства, которые подключены к сети Интернет, содержат свой оригинальный MAC-адрес. ICMP – протокол, который ответственен за обмен данными, но не используется для процесса передачи информации. UDP – протокол, управляющий передачей данных, но данные не проходят верификацию при получении. Этот протокол функционирует быстрее, чем протокол TCP. HTTP – протокол для передачи информации (гипертекста), на базе которого функционируют все сегодняшние сайты. В его возможности входит процесс запрашивания необходимых данных у виртуально удаленной системы (файлы, веб-страницы и прочее). FTP – протокол передачи информации из особого файлового сервера на ПК конечного пользователя. POP3 – классический протокол простого почтового соединения, который ответственен за передачу почты. SMTP – вид протокола, который может устанавливать правила для передачи виртуальной почты. Он ответственен за передачу и верификацию доставки, а также оповещения о возможных ошибках. ПРЕИМУЩЕСТВА И НЕДОСТАТКИ КЛИЕНТ-СЕРВЕРНОЙ АРХИТЕКТУРЫ Преимущества: Отсутствие дублирования кода программы-сервера программами-клиентами. Снижение требований к аппаратной части конечного пользователя (так как все вычисления выполняются на сервере). Повышение уровня безопасности. Все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще организовать контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа. Такой подход повышает масштабируемость и доступность системы, если есть ограниченное число ресурсов, к которым требуется ограниченный правами доступ большого числа потребителей. Недостатки: Пониженная отказоустойчивость (неработоспособность сервера может сделать неработоспособной всю вычислительную сеть) Неработоспособным сервером следует считать сервер, производительности которого не хватает на обслуживание всех клиентов, а также сервер, находящийся на ремонте, профилактике и т. п. Сложность поддержки работы системы (требует отдельного специалиста — системного администратора). Высокая стоимость оборудования. КОНЦЕПЦИИ ПОСТРОЙКИ КЛИЕНТ-СЕРВЕРНОЙ СИСТЕМЫ Слабый клиент – производительный сервер При такой модели весь процесс обработки информации перенесен на мощности сервера, а у пользователя права доступа очень строго ограничены. Сервер начинает отправлять ответ, который вообще не требует дополнительной работы по обработке. Клиент взаимодействует с пользователем: создает и отправляет запрос, принимает входящие итоги и выводит данные на экран пользователя. Сильный клиент Концепция, при которой часть обработки данных предоставляет клиенту. В такой ситуации сервер является простым хранилищем информации, а вся деятельность по обработке и предоставлению данных переносится на ПК пользователя. Продукт или система, которая говорит о том, что часть обрабатывающей информации предоставляется пользователю. При такой ситуации сервер выступает особым хранилищем информации, а вся деятельность по обработке и предоставлению данных может переноситься на ПК пользователя. ВИДЫ КЛИЕНТ-СЕРВЕРНЫХ АРХИТЕКТУР: Двухуровневая (двухзвенная): Клиент, который может предоставлять пользовательский графический интерфейс. Веб-сервер, который ответственен за получение входящих запросов и отправку ответа пользователю, применяя при этом собственные ресурсы системы; База данных фактически не является частью веб-сервера, но большинство приложений просто не могут выполнять все возложенные на них функции без нее, так как именно в базе данных хранится вся динамическая информация приложения (учетные, пользовательские данные и пр). Особенности работы заключаются в том, что на сервер приходит определенный запрос, потом его обрабатывают и дают напрямую, без дополнительного применения группы внешних ресурсов. Трехуровневая (трехзвенная): Сетевое приложение разделено на две и более частей, каждая из которых может выполняться на отдельном компьютере. Выделенные части приложения взаимодействуют друг с другом, обмениваясь сообщениями в заранее согласованном формате. Третьим звеном в трехзвенной архитектуре становится сервер приложений, т.е. компоненты распределяются следующим образом: Представление данных — на стороне клиента. Этот уровень не должен иметь прямых связей с базой данных быть нагруженным основной бизнес-логикой и хранить состояние приложения. На этот уровень обычно выносится только простейшая бизнес-логика: интерфейс авторизации, несложные операции с данными (сортировка, группировка, подсчёт значений), уже загруженными на терминал. Прикладной компонент — на выделенном сервере приложений (как вариант, выполняющем функции промежуточного ПО). На этом уровне сосредоточена большая часть бизнес-логики. Управление ресурсами — на сервере БД, который и представляет запрашиваемые данные. Сервер БД обеспечивает хранение и предоставление данных. Особенность работы состоит в том, что сразу несколько серверов могут обрабатывать клиентские запросы. Процесс распределения операций может существенным образом снизить нагрузку на используемый сервер. Сравнение: Двухзвенная архитектура проще, так как все запросы обслуживаются одним сервером, но именно из-за этого она менее надежна и предъявляет повышенные требования к производительности сервера. Трехзвенная архитектура сложнее, но, благодаря тому, что функции распределены между серверами второго и третьего уровня, эта архитектура предоставляет: Высокую степень гибкости и масштабируемости. Высокую безопасность (т.к. защиту можно определить для каждого сервиса или уровня). Высокую производительность (т.к. задачи распределены между серверами). Многоуровневая система Трехуровневая архитектура может трансформироваться до многоуровневой, возможностью установки группы дополнительных серверов, каждый из которых будет представлять собственные сервисы и пользоваться услугами прочих серверов разного уровня. Подобная виртуальная архитектура позволяет существенным образом повысить эффективность функционирования информационных систем, а также выполнить оптимизированное распределение части ее программно-аппаратных ресурсов. ИТОГИ Нюансы взаимодействия системы клиент-сервер позволяют пользователям разделять определенный функционал и вычислительную нагрузку между подключенными клиентскими веб-продуктами и серверными приложениями при разнообразных процессах тестирования (от тестирования БД до замеров общей производительности системы). Понимание программистами и тестировщиками внутренней архитектуры приложения позволяют им более качественно не только создавать продукт, но и тестировать его, выполняя полноценные проверки от кроссбраузерного соответствия до регрессионных тестов. https://habr.com/ru/post/495698/ https://www.youtube.com/watch?v=wLHuviTWnuY Front-end Back-end Фронтендом называют клиентскую сторону пользовательского интерфейса по отношению к программно-аппаратной части сервиса, простыми словами все, что браузер может читать, выводить на экран и/или запускать. То есть это HTML, CSS и JavaScript. Откройте страницу любого веб-сайта, и вы увидите перед собой его интерфейс. А потом щёлкните правой кнопкой мыши и нажмите «Посмотреть код страницы». Этот код и будет примером фронтенда. Он описывает всё, что вы видите, начиная от вёрстки и всей палитры цветов, заканчивая шрифтами, графическими элементами и т. п. Код клиентской части написан с использованием HTML, CSS и JavaScript; выполняется внутри веб-браузера и имеет ограниченный доступ, или вообще никакого к операционной системе (включая ограниченный доступ к файловой системе). HTML (от английского HyperText Markup Language) — это язык гипертекстовой разметки страницы. Он используется для того, чтобы дать браузеру понять, как нужно отображать загруженный сайт. CSS (Cascading Style Sheets, каскадные таблицы стилей) — язык описания внешнего вида HTML-документа. Это одна из базовых технологий в современном интернете. Практически ни один сайт не обходится без CSS, поэтому HTML и CSS действуют в единой связке. JavaScript — это язык скриптов, на котором держится весь frontend веб-разработки. Он позволяет перехватывать события и выполнять различные действия. Например, пользователь кликнул по какой-нибудь кнопке — сработало событие click. И, связав с ним, мы можем выполнить нужную нам функцию — открыть модальное окно или изменить цвет элемента. Бэкенд — это программно-аппаратная часть сервиса. Это набор средств, с помощью которых происходит реализация логики веб-сайта. Это то, что скрыто от наших глаз, т. е. происходит вне компьютера и браузера. Как только вы введёте запрос на странице поисковика и нажмёте клавишу «Ввод», frontend закончится и начнётся backend. Ваш запрос отправится на сервер Яндекса или Google, т. е. по месту расположения алгоритмов поиска. Именно там и происходит вся «магия». Но вот, на мониторе появляются данные, которые вы запрашивали, — это происходит возвращение во frontend. Для разработки серверной части вы можете использовать любой универсальный язык программирования: Ruby, PHP, Python, Java, JavaScript / Node, bash. Это также означает, что вы можете использовать системы управления базами данных, такие как MySQL, PostgreSQL, MongoDB, Cassandra, Redis, Memcached. Бизнес-логика В контексте клиент-серверной архитектуры мы употребляем термин Бизнес-логика. Мы говорим, что для снижения нагрузки на клиенте основная часть бизнес-логики переносится на сервер. В IT термин «бизнес-логика» широко употребляется и имеете ни много значений. Давайте разберемся с основными понятиями. |