что такое клиентская часть сайта

Клиентская и серверная веб-разработка

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

Клиентская веб-разработка

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

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

Всё это программное обеспечение работает на клиентском устройстве. Разработчики на стороне клиента также известны как программисты «переднего плана», поскольку «передняя часть» веб-страницы — это то, что получает взаимодействие с пользователем. Эти разработчики получают хорошую оплату за свою работу, зарабатывая в США в среднем 100 208 долларов в год. Конечно, заработная плата может варьироваться в зависимости от местоположения и компании.

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

Серверная веб-разработка

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

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

Эти разработчики программного обеспечения проектируют, создают и обслуживают серверный код, который делает возможным такой обмен данными. Эти программисты также известны как разработчики серверной части. Они работают за кадром, следя затем, чтобы на серверах приложений всё работало должным образом. Бэкенд-программистам также очень хорошо платят, их зарплата в США составляет в среднем 117 284 долларов.

Эти программисты обычно владеют серверными языками, такими как Python, SQL, Ruby on Rails, PHP и Java.

Как стать клиентским или серверным веб-разработчиком

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

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

Источник

Что такое клиентская часть сайта и как она разрабатывается?

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайтаСегодня хотим поговорить про технологии и программные продукты, применяемые в разработке клиентской части сайта. Так, например, можем выделить несколько самых популярных текстовых редакторов для записи кода: Sublime Text, Notepad++, Visual Studio Code и другие.

Также существует три основных языка вёрстки:

Наряду с основными технологиями, есть также и другие, ускоряющие процесс разработки. Они уже характерны для более продвинутых юзеров, активно применяются в топовых веб-студиях таких как https://webkitchen.kiev.ua или при создании сайтов профессиональными фрилансерами. В целом, позволяют работать более эффективно. Это:

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Как выполняется разработка графической части сайта

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

Например, простой текст можно оформить в виде списка или заголовка и опубликовать его по средине экрана. Изображение можно увеличить или уменьшить, сделать его ссылкой и поместить в нужном месте. Таким образом, создание клиентской части вебсайта — это редактирования текста/графики веб-страницы, только не традиционным способом (как это делают мышью), а через написание специального кода на HTML, CSS и JavaScript. Процедура делится на следующие этапы:

1. Подготовка макета осуществляется в специальных графических редакторах — Photoshop, Fireworks и других. Он представляет собой изображение будущего сайта в формате jpg или psd.

2. Далее следует процедура вёрстки. Это, по факту, основа клиентской разработки, и делится она на несколько шагов:

3. Следующим (не обязательным) этапом является программирование на языке JavaScript или jQuery. Процесс позволяет добавить в интернет-сайты определенную интерактивную функциональность: выпадающие списки, анимацию, срабатывание кнопок и др.функции, выполняющие определённые действия на веб-странице (отправка почты, калькуляторы и др.).

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

Источник

Архитектура взаимодействия клиентской и серверной частей Web приложения

Хотел рассказать, как я вижу устройство архитектуры взаимодействия серверной и клиентской частей. И хотел бы узнать спросить хабровчан, чем плоха или хорошо такая архитектура.
что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Клиентская структура

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

Конечно, многие из нас начинали изучение jquery с циклов статей для новичков, внедряя на свои сайты и динамическую подгрузку содержимого, и проверку форм на серверной части, и многое другое.

Со временем размер кода вырос: в проекте появилось множество обработчиков ответов от серверной части. Где-то запрашивается целая страница и из нее вырывается кусок контента, где-то идет запрос на различные файлы, где-то ожидается JSON, а кое-где XML. Все это надо прибирать, чтобы и кода было меньше, и работал он быстрее, и работать с ним было проще.

Во-вторых, надо сократить количество точек входа для AJAX запросов. Если запросы отправлялись и на index.php, и на request.pl, и на upload.xml, то это огромный объем работы, и нередко бывает, что сделать это невозможно не переписав заново всю серверную часть. Хотя это надо сделать, если хочется быстро и просто расширять клиентскую часть. Как и у всех правил, у этого есть исключения. О них чуть ниже.

В третьих, самое главное: необходимо унифицировать обработчик ответа.

Например, у нас в проекте все ajax-запросы идут только на файл ajax.php. Он всегда возвращает некоторые данные в виде XML, довольно просто структурированные.

Единый обработчик ответа парсит XML и раскладывает по полочкам:

• Список js-файлов, которые необходимы для обработки ответа.
• Сallback-функции, которые необходимо запустить, и какие аргументы в эти функции надо передать.
• Куски HTML-кода, которые будут применены в вышеуказанных функциях.
• Список css файлов, которые нужны для украшения html кода.

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

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

Когда все скрипты загружены, запускаем callback-функции.

Надо обратить внимание, что для ускорения загрузки все js файлы загружаются асинхронно, и соответственно здесь может возникнуть проблема с запуском callback-функций. Ведь они могут быть в этих файлах.
Решением этой проблемы может стать создание зависимостей функций от js файлов. Это, в свою очередь, порождает проблемы контроля этих зависимостей программистом и передаче их вместе с ответом клиентской стороне.
Второе решение — это дождаться загрузки абсолютно всех запрошенных файлов и уже потом начать выполнения функций.
Как сделать это красиво, можно послушать в этом чудесном подкасте habrahabr.ru/blogs/hpodcasts/138522

Я для своих проектов выбрал самое простое решение — второе. Я исходил и того, что подгрузка необходимых js файлов нужна крайне редко, потому что все скрипты объединяются на серверной стороне в пакеты. И обычно пакет заранее содержит все необходимые callback`и. А если подгрузка файлов и будет нужна, то потребует максимум один-два файла, что не сильно задержит обработку ответа.

Напомню, что пользователь к этому моменту все еще не видит изменений на экране. Что ж, покажем ему их — начнем выполнять функции. Главное, что стоит учитывать — все функции-обработчики ответа должны быть независимыми друг от друга. Они могут зависеть от одного крупного компонента (например, функций ядра проекта), но не должны друг от друга. Это позволит перемещать и интегрировать callback`и в другие части проекта без каких-либо особых заморочек. Например, выводить всплывающие окна с сообщениями об ошибках может потребоваться на всех страницах.

Функции выполнены, пользователь работает дальше.

Обработка запросов сервером

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

У нас все запросы не только посылаются на один файл, но и все данные в нем посылаются методом POST. На серверной стороне ожидается некоторый POST-параметр «action». Значение этого параметра определяет то, какой модуль сайта должен отработать. Сами пары с ожидаемыми значениями и именами модулей записаны в конфигурационном файле. Если в конфигурации есть соответствующий модуль – он запускается, если нет — запускается дефолтный модуль, который настроен на возврат сообщения об ошибке.
Также, мы можем записать в серверный лог все параметры запроса. Анализ лога потом позволит быстро отследить и исправить ошибку. Или во время выполнения скрипта забанить IP пользователя на минут 15 за перебор значений, если есть уверенность, что ошибок в нашем приложении нет. Но это уже крайность.

Обработка ошибочных запросов на клиентской стороне

Нельзя забывать про обработку сорвавшихся запросов, например по таймауту или внезапному отключению пользователя от сети.

Кэширование

Вернемся к вопросу про точки входа. C точки зрения написания красивого кода, указывание только одного адреса для точки входа не совсем правильное решение. Это ни в коем случае не противоречит моему второму совету. Попробую разобрать все стороны данного вопроса.

Как можно было бы сделать все красиво? — Отправлять запросы на определенные адреса. Например, ajax.php?action=feedback или ajax.example.com/feedback. Это избавило бы запрос от лишнего мусора. Когда определен модуль, который будет обрабатывать данные, эта информация ему уже не нужна. Мухи отдельно, котлеты отдельно. Красиво? Красиво.

Если POST параметров в запросе вообще нет, то это хорошая возможность использовать возможности кэширования на промежуточных проксях или кэш браузера.
В рекомендациях от Google для Web-мастеров сказано, что отсутствие GET-параметров в http-запросе провоцирует прокси-сервера использовать кэш. Поэтому запрос без POST и GET параметров, например ajax.mysite.com/footer, будет идеальным для добавления его в кэш прокси сервером. Из дополнительных плюсов отмечу, что если ответ будет от прокси сервера, то это немного разгрузит и наш сервер.
Когда это вообще может понадобится? Когда мы подгружаем части страницы через ajax. При этом они являются неизменными в течение долгого времени.

Но использовать ajax-запрос без GET или POST параметров не стоит, раз существует вероятность получения не актуальных данных.
Предположим, что у нас чат и мы не используем веб-сокеты. Каждую секунду долбимся на сервер, чтобы посмотреть новые сообщения. Пользователь попался за каким-то прокси сервером. Первый запрос пройдет удачно и вернет, что сообщений нет. На все последующие запросы, прокси сервер будет возвращать первоначальный ответ. А это нарушит всю работу чата. Проблем поможет избежать добавление параметра в запрос. Что, в свою очередь, создаст тот самый мусор, которого мы так старались избежать.

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

Изобретая велосипед

В нашем проекте данные в запросе отправляется только методом POST, потому что механизм кэширования у нас заложен в том самом едином интерфейсе отправки ajax-запросов. По умолчанию абсолютно каждый запрос и ответ на него запоминается на 3600 секунд. При последующем аналогичном запросе отработает кэш, возьмет из коробочки ответ и запустит сразу все механизмы по его анализу, без отправки непосредственно запроса на сервер. Ведь мы уже уверены, что все стили и скрипты уже на месте.
Если запоминать пару запрос-ответ не нужно или надо просто уменьшить время жизни кэша, то серверная сторона сообщает об этом в первоначальном ответе, изменяя время кэша на 0 или другое количество секунд.

Почему только POST, а не совмещенный вариант? Так проще сравнивать запросы.
Данные отправляемые через функцию ajax в jQuery, это js-объект.
Запрошенные данные довольно быстро сравниваются перебором с объектами в кэше, конечно, если у клиента современный браузер. Если браузер старый, приходится принудительно отключать кэш.

В итоге

В итоге мы получаем устойчиво работающую связку клиентской и серверной частей. И эта связка позволяет нам создавать безопасные и простые для дальнейшего расширения Web приложения.

Пост написан во имя спасения наносекунд и множества нервных клеток программистов, создающих свои прекрасные творения.

Источник

Термины «фронтенд», «клиентская сторона» и «интерфейс» — как употреблять и не облажаться

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

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

При работе над кейсом проекта Designet я поймал себя на том, что считаю термины «фронтенд», «клиентская сторона» и «интерфейс» синонимами. Чтобы расставить все точки над i и больше их не путать, я написал эту памятку. Надеюсь, что она поможет не только мне, но и коллегам — редакторам, копирайтерам, техническим журналистам, маркетологам, менеджерам проектов и всем, кто не имеет прямого отношения к программированию.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Интерфейс

Всё, что помогает человеку управлять инструментом, будь то программа, компьютер, бытовой прибор или панель заводского станка — это интерфейс. Элементами интерфейса являются меню, кнопки, клавиатура, мышь, монитор, переключатели, тумблеры, тулбары, поля для набора текста, экраны с ошибками и прочие способы взаимодействия и ввода/вывода информации. Применительно к интерфейсу программ и приложений в английском языке встречается словосочетание user interface (UI).

Интерфейс — это всё, что вы видите и что можете потрогать.

Интерфейс может быть удобным и неудобным. Критерием удобного интерфейса по сегодняшним меркам считается короткая череда действий, которая не бесит, не смущает, не выматывает и в итоге даёт желаемое. Сумма ощущений от пользования интерфейсом называется опытом взаимодействия, пользовательским опытом или user experience (UX). Он тоже может быть плохим или хорошим.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Интерфейс поисковой страницы Google — пример интерфейса с UX уровня «дзен».
что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта
Файловый менеджер FileMatrix — пример ужасного интерфейса из обсуждения на Stack Overflow. Не лезь, он тебя сожрёт.

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

Фронтенд

Если интерфейс — это прослойка между пользователем и кодом, запускающая последний в работу, то фронтенд — это тот самый код и есть. Возьмём, например, какую-нибудь страницу «Википедии». Чтобы открыть её, мы даём команду браузеру: «А покажи». Браузер запрашивает у внешнего сервера строительный материал страницы — код. Этот код исполняется на странице и рисует то, что вы попросили у браузера.

Стоит заметить, что часто под фронтендом понимают веб-разработку. Из-за двойственности в определении существует спор, как писать этот термин по-английски: раздельно или через дефис. Свет на проблему проливает эта публикация.

Фронтенд складывается из взаимодействия трёх технологий:

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Одно нажатие F12, и страница показывает всё, что под ней спрятано.

Клиентская сторона

Средство, которое принимает данные и показывает их в понятном человеку виде, называется клиентской стороной, или клиентом. Этим средством является браузер, мобильное приложение, работающее с данными с сервера, компьютер, телефон, планшет, телевизор или радиоприёмник.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Этих клиентов уже никто не обслужит.

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

Закрепление

Клиент — это устройство для оперирования удалёнными данными.
Интерфейс — это набор элементов для управления программой или устройством
Фронтенд — это код, принятый клиентом, запущенный на нём и ставший интерфейсом, или веб-разработка на клиентской стороне как таковая.

Не так страшно повторять в тексте один и тот же термин, как безрассудно заменять его на неправильные синонимы. Если вы хотите указать на неточности и спорные моменты или высказать что угодно по теме — добро пожаловать в комментарии.

Источник

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

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Знакомая картинка? А вы ведь постоянно сталкиваетесь с этой архитектурой — когда покупаете билет в кино онлайн, бронируете путевку на море или записываетесь к врачу.

На клиент-серверной архитектуре построены все сайты и интернет-сервисы. Также ее используют десктоп-программы, которые передают данные по интернету. Поэтому ИТ-специалисту нужно понимать, что это такое и как работает.

Об этом я и расскажу в статье. Объясню на пальцах, с примерами и забавными картинками =) Если вы больше любите видео-формат, можно посмотреть мой ролик на youtube на ту же тему.

Содержание

Что это и как работает

Вот есть у нас некий Вася, который решил купить машину. Такую, как в рекламе — быструю, мощную, красивую! Только стоит она как хвост самолета, у Васи таких денег нет.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Конечно, Вася может подкопить несколько лет, а потом уже покупать машину. Но ведь хочется здесь и сейчас! Да и средство передвижения нужно…

А еще Вася не умеет копить — получил зарплату, закупился основным, оплатил жилье, всё! Остальное можно потратить. Для таких людей есть банки, куда можно прийти и взять деньги в кредит.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

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

Вася подумал, прикинул и сказал:

— Да, хочу именно так! 100 рублей с зарплаты платить в банк могу, а откладывать — нет. Потрачу.

Поэтому Вася идет в банк и говорит:

— Я Василий Иванов, хочу автокредит на 1000р.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

У Кати есть специальная программа для проверки данных по клиентам. Эта программа может быть как web, так и desktop:

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Катя вбивает в программу «Василий Иванов» и получает информацию по клиенту — есть ли он в черных списках? Была ли кредитная история раньше? И так далее. Но что происходит в потрохах приложения?

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Катя ввела данные на клиенте. Но когда она нажала «проверить», клиент отправил запрос на сервер:

— Дай мне информацию по Васе Иванову!

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Сервер отправил запрос в БД, базу данных:

— Select * from clients where fio = ‘Василий Иванов’. (Дай мне всю информацию по ФИО ‘Василий Иванов’)

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

— Вот тебе все, что нашла.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Сервер вернул эту информацию клиенту:

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

А клиент уже отрисовал ее для Кати:

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

— Ага, кредитная история хорошая.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

И делает предложение Васе:

— Пожалуйста, если хотите взять кредит, то мы готовы выделить 1000р на 12 лет под 80% годовых. Устроит?

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

— Да, меня всё устраивает, давайте скорее деньги, и я побежал за машиной!
Все счастливы, все довольны.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Катя даже не догадывается, какой путь проделали данные в программе, когда она вбила туда ФИО своего клиента. Но мы с вами должны узнать, что же это за путь такой? И к чему все эти сложности? Почему именно такая структура? Почему есть клиент, почему есть сервер?

Зачем нужен клиент

Тут все просто — с клиентом работает пользователь. Он нужен, чтобы превратить байтики программного кода в красивую и понятную картинку. Пользователь — не программист, он не понимает язык программирования или sql. Он понимает формочки и кнопочки. Их в клиенте и рисуем.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Зачем нужен сервер

Клиентов может быть много. В примере с банком у нас может быть по 10 отделений в 10 городах России, а в каждом отделении по 10 операционисток. Тысяча Катек, и у каждой отдельный компьютер.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

А мы ведь хотим, чтобы приложение работало быстро. Чтобы оно не тупило и не зависало, нервируя операциониста и заставляя клиента ждать. Значит, машина нужна мощная. Но если делать мощным каждый компьютер операциониста, денег придется вложить очень много!

Поэтому мы выносим всю основную логику на сервер. И вот его уже делаем мощным! А клиентские машины могут быть дешевыми, потому что на них остается лишь логика в стиле «запросить информацию и красиво отрисовать».

Нет дублирования кода

Если бы у нас были только клиентские машины, на каждой из них хранился бы одинаковый код по обработке логики, лежала вся база данных, все справочники террористов и прочая. Но так как сервер и БД вынесены в отдельные звенья, с клиентской машины освобождается куча места… И кода.

Не надо дублировать код, ведь вся основная логика вынесена на более мощный сервер.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

На сервере и в базе хранится информация, недоступная простому операционисту. Это:

Есть операционисты, готовые за денюшку слить информацию о клиентах. Есть нечистые на руку люди, готовые невзначай заглянуть через плечо. А, может, клиент сам такой человек. Представляете, отпихивает Вася хрупкую Катю, садится за ее компьютер, и переводит себе на счет миллионы, пока его не повяжет охрана.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Зачем нужна база

При чем же тут БД? Вот у нас есть наш сервер, пусть он и хранит всю информацию. Бывает и так, иногда база просто не нужна и у нас остается двузвенная архитектура клиент-сервер.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

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

БД (база данных) — отдельный программный продукт, который позволяет:

Да, базы может не быть. Но когда она есть, мы уверены в сохранности данных и легко можем по ним поискать.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Плюсы архитектуры

Резюмируем плюсы архитектуры:

Минусы архитектуры

Упало одно звено — все отдыхают

Если упал сервер или отвалилась база, то есть испортилось 1 звено — всё, все в ступоре, все отдыхают. Сотни, тысячи, да хоть миллионы клиентов если есть — никто не может работать. Все операционистки грустно смотрят на окно «Простите, что-то пошло не так» и разводят руками перед клиентом.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Именно поэтому в бизнес-критичном ПО архитектуру усложняют и даже дублируют. Банк с тысячами операционистов не может позволить себе простой. Поэтому они используют кластер серверов — один упал, остальные работают.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Как в таком случае клиент понимает, куда ему отправлять запрос?

Перед серверами ставят балансировщик, и клиент шлет запрос туда. Сколько бы серверов не поставили в кластер, клиенту это не интересно. У него есть один URL — адрес балансировщика.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

И вот с клиента поступает запрос:

— Дай мне всю информацию по Васе Иванову.

— Ребята, новый запрос! Кто меньше загружен?

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

— У меня 5 запросов в очереди стоит.

Балансировщик отправляет запрос второму серверу.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Такая схема используется для высоконагруженного приложения — когда запросов поступает так много, что один сервер с ними просто не справляется.

Facebook, amazon, google — туда заходят миллионы пользователей. Один сервер с ними не справится. Поэтому ставят кластер, а балансировщик делит между ними нагрузку. И в таком случае в кластере может быть не 2 сервера, а 10, 15, сколько нужно, столько и ставим.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

При этом мы можем точно также балансировать базу данных. У нас может быть несколько копий баз данных на самых разных машинах, и балансировщик отправляет запросы то к одной, то ко второй.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

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

При этом может быть и схема холодного резерва — когда у нас второй сервер является резервной копией «на всякий случай». Все запросы идут на первый сервер, второй отдыхает.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Но если с первым сервером что-то случится и он помрет, балансировщик перенаправит нагрузку на второй сервер:

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

В это время у администраторов будет время разобраться с проблемой на сервере 1.

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

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

Таким образом, схемы резервирования помогают нам устранить проблему «упало 1 звено — все отдыхают». Клиент никогда не узнает, что один или несколько серверов в кластере сдохли, у него всё как работало, так и работает.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Высокая стоимость оборудования

Сервера стоят дорого. Туда нельзя поставить обычный SSD как для домашнего компьютера. Почему? Потому что к железу для серверов совсем другие требования по надежности + есть поддержка специфичных функций:

— у HDD это специальная микропрограмма контроллера, которая оптимизирована для работы диска в RAID, дома это не нужно.

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

SSD — быстро работающий диск, HDD — обычный. RAID — когда мы N дисков вместе соединили, а DDR кэш — это оперативная память

Плюс у серверных решений гарантия обычно гораздо дольше: 5 лет, а не год.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

По цене отличаются в 2 раза. Например, SSD:

Вроде не сильно отличается, да? Но смысл в том, что для дома 1 тб хватает за глаза — и фоточки все влезут, и кино, и куча приложений… А для базы данных иногда и 10 тб будет мало. А если делать кластер, то умножаем стоимость на 2, если не больше. Поэтому и разница в цене кажется огромная, но при пересчете на гигабайт небольшая выходит.

Не забывайте, что дома вам просто надо свои фоточки держать, да и те обычно в облаке. А на сервере бизнес-критичный функционал, который жрет дофига ресурсов и который надо дублировать на случай «вдруг первый сдохнет».

Нужно нанять сисадмина

Нам нужно нанять сисадмина, который будет следить за всеми нашеми серверами приложения и БД. Добавляем его зарплату к стоимости оборудования!

Что тестировать

Чтобы понимать, что тестировать, надо понимать, с чем имеет дело человек.

Пользователь работает с клиентом. Это может быть web или desktop приложение, не суть. Операционистке Кате дали рабочее место, показали какую программу запускать и как с ней работать. Она знать не знает о наличии серверов и БД, она работает только с клиентом.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Поэтому тестировщик в первую очередь проверяет клиент! Потому что сервер может работать идеально, вы можете даже написать тесты на уровне API и они все будут зелененькие, и кажется, что все зашибись! А пользователь загрузит отчет и увидит ошибку. Ой.

Сервер работает, на клиенте ошибка. И плевать на сотни «зеленых» автотестов. У пользователя все равно ошибка. И наша задача — посмотреть с его точки зрения.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Однако, если у вас есть доступ к серверу приложения и его базе данных — стоит проверять и их тоже! Так мы можем увидеть «будущий баг». Например:

— Ну, наверное, их и не заполняли.

А их заполняли! Просто сохранение криво сработало. Поэтому, если у нас только черный ящик, то нужно проверять, «а реально ли сохранились данные?». Сохранили? Откройте карточку в новом окне или вызовете информацию через API-метод.

Если доступ к базе есть — просто проверьте по ней, что все хорошо. Если есть доступ к серверным логам — проверьте их на наличие ошибок.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Помимо простых пользователей бывают злые люди, которые пытаются встрять в наше приложение и своровать деньги / данные. Они используют не клиент или сервер — туда у них доступа нет. Они пытаются перехватить данные в пути от клиента к серверу, или от сервера к БД.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Ну а раз нехорошие люди могут это сделать, то тестировщик тоже должен это уметь! Потому что тестировщик предоставляет информацию о нашем продукте.

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Тестировщик изучает уязвимости и потом рассказывает команде:

— Ребята, вот я проверил, у нас есть такие-то и такие-то потенциальные дыры. Давайте подумаем, надо нам их как-то закрывать или нет.

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

Но какие-то базовые проверки типа sql-иньекций или XSS-атак стоит изучить и проверить на своем приложении. Хотя бы чтобы понять их критичность. Ведь если атака сломает клиент — ну и пусть, сам себе буратино. А если атака положит сервер, это уже не очень хорошо. И надо хотя бы знать, от чего это бывает.

Итого

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

Клиент — та программа, с которой работает пользователь. Он знать не знает, это у него на компьютере программа целиком, или где-то за ней прячутся сервер с базой, а то и целый RAID. Он работает в браузере или с desktop-приложением. И всё, что ему нужно знать — это «куда тут тыкать».

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

Сервер — компьютер, на котором хранится само приложение. Весь код, вся логика, все дополнительные материалы и справочники. Например, справочник адресов ФИАС или справочник юр лиц ЕГРЮЛ — они тоже занимают место, как сами по себе, так и в памяти приложения.

Иногда говорят «сервер приложения» и «сервер БД». Это нормально, ведь фактически сервер — это просто машина, компьютер. А базу и сервер приложения обычно хранят на разных машинах, ради безопасности. В таком случае, если говорят «сервер приложения» — речь о втором звене нашей схемы.

Приложения бывают самые разные. Есть ресурсоемкие, им нужно много памяти и места на диске. Есть «легкие», которые можно развернуть даже на домашнем компьютере.

БД (база данных) — хранилище данных. Тут вы можете легко поискать информацию + уверены в том, что она сохранится, даже если в приложении что-то сломается. Подробнее о ней — в статье «Что такое База Данных (БД)»

Сколько места нужно под базу, зависит от количества данных. Есть огромные базы в банках, где и 1тб будет мало. А есть совсем небольшие, которые вы можете установить на своей машине. Например, XAMPP можно поставить. И врядли вы напихаете туда столько данных, что у вас не останется под них место.

Отдельной базы может не быть, тогда структура станет двузвенной: клиент-сервер. И все!

Схема условная, в реальной жизни у нас как минимум будет больше клиентов. А если приложение высоконагруженное, то будет несколько серверов и несколько баз данных:

что такое клиентская часть сайта. Смотреть фото что такое клиентская часть сайта. Смотреть картинку что такое клиентская часть сайта. Картинка про что такое клиентская часть сайта. Фото что такое клиентская часть сайта

PS — больше полезных статей ищите в моем блоге по метке «полезное». А полезные видео — на моем youtube-канале

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *