Сервер

Принцип 2. Stateless

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

Что это значит?

Пример реализации принципа Stateless. Запрос погоды на 20.06 в Москве

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

Что мы делаем в случае, если мы работаем с Stateless? Мы отправляем запрос «Какая погода?», отправляем место, где хотим погоду узнать, и дату. Соответственно, прогноз погоды отвечает нам — «Будет жарко».

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

Пример реализации принципа Stateless. Запрос погоды на 21.06 в Москве

Рассмотрим ситуацию: что было бы, если бы у нас не было Stateless? В таком случае у нас бы был Stateful. В этом случае сервер хранит информацию о предыдущих обращениях клиента, хранит информацию о сессии, какую-то часть контекста взаимодействия с клиентом. А затем может использовать эту информацию при обработке следующих запросов.

Приведём пример на рисунке:

Пример реализации принципа Stateful

Я всё так же хочу узнать, какая погода будет завтра: отправляю запрос, сервер его обрабатывает, формирует ответ и, помимо того, что он возвращает ответ клиентам, он еще сохраняет какую-то информацию (часть или всю) о том, какой запрос он получил. В случае, если я захочу узнать, какая погода будет через день, я могу сделать такой вызов: «А завтра?». Не сообщая ничего о месте и о дате.

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

Вернёмся к Statless-подходу. Почему в REST-архитектуре мы должны использовать именно Statless-подход?

Какие он даёт плюсы?

  • Масштабируемость сервера,

  • Уменьшение времени обработки запроса,

  • Простота поддержки,

  • Возможность использовать кэширование.

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

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

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

Также подход Stateless позволяет использовать кэширование.

Какие проблемы может создать Stateless-подход?

  • Усложнение логики клиента (именно на стороне клиента нам нужно хранить всю информацию о состоянии, о допустимых действиях, о недопустимых действиях и подобных вещах).

  • Увеличение нагрузки на сеть (каждый раз мы передаём всю информацию, весь контекст. Таким образом, больше информации гоняем по сети).

Scrum-терминология

Бэклог

backlogочередь работПримеры употребления:

  • «Надо разгрести бэклог»
  • «Пусть пока задача полежит в бэклоге, не будем брать её в этот спринт»
  • «Не забудь добавить эту задачу в бэклог своей команды»

Гол, голевой

goalцельПримеры употребления:

  • «Эта задача голевая, нужно сделать ее в первую очередь»
  • «Все голы в этот раз не выполнили»
  • «Почему неголевые задачи в работе?»

Дейли

dailyежедневностендапомdaily standupПримеры употребления:

  • «Ребята, у нас дейли, встаем»
  • «Я сегодня удаленно, подключите меня на дейли по Zoom»
  • «К сожалению, дейлик пропускаю, нужно идти на важный митинг»

Коммититься

commitmentответственностьПримеры употребления:

  • «Мы на это не коммитились, поэтому надо вернуться к более приоритетным задачам»
  • «Вы уверены, что мы можем коммититься на такое?»
  • «В этом спринте мы выполнили все цели, на которые коммитились»

Спринт

sprintбег на короткую дистанциюПримеры употребления:

  • «Опять завалили спринт»
  • «На этот спринт выпадают праздничные дни, поэтому он будет короче»
  • «Невыполненные задачи из прошлого спринта надо перенести в следующий»

Домен ru или com: что лучше для SEO-продвижения

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

Определившись с оптимальным вариантом доменной зоны (например, домен ru или com), стоит обратить внимание на следующие нюансы, которые в комплексе обеспечат успех созданного сайта во всемирной сети:. • короткое и лаконичное, но ёмкое по смыслу доменное имя будет способствовать быстрому и лёгкому запоминанию сайта представителями целевой аудитории

Url-адрес площадки в этом случае можно будет вводить напрямую, минуя поисковые системы;

• короткое и лаконичное, но ёмкое по смыслу доменное имя будет способствовать быстрому и лёгкому запоминанию сайта представителями целевой аудитории. Url-адрес площадки в этом случае можно будет вводить напрямую, минуя поисковые системы;

• использование в доменном имени сайта ключевого слова является фактором, способным на 25% приблизить ресурс к топовым позициям по релевантным запросам в поисковиках;

• соблюдение уникальности доменного имени и его максимальное отличие от наименований прочих веб-страниц принесёт ощутимую пользу владельцам ресурса и обеспечит сайту серьёзные конкурентные преимущества;

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

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

Но не стоит забывать и о том, насколько важно применение современных способов оптимизации, и конечно наполнение площадки интересным контентом, который заставит пользователей возвращаться к вам снова и снова!

Прокси-сервер, что это такое простыми словами

Прокси это же посредническое устройство в сети, которое выполняет обмен информацией между двумя источниками через себя, в ту и обратную сторону. И так же частично изменяя некоторые ее характеристики. Каждый компьютер в сети имеет свой персональный адрес (IP адрес) и некоторые другие параметры. Когда два или более компьютера обмениваются запросами – они узнают по этим данным друг друга.

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

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

Но ими могут пользоваться и мошенники, в целях обеспечения анонимности. Для безопасности, при использовании прокси-сервером, советуют пользоваться протоколом HTTPS.

Как выбрать

Для DNS вид домена не играет роли. Что такое домен с позиции информатики? Это любая уникальная комбинация букв и цифр. 

Но выбранное наименование имеет значение для аудитории. Например, адрес созвучный с названием компании внушает больше доверия пользователям — они понимают, что попали на официальный ресурс. Посредством доменного имени можно обозначить сферу деятельности — metal-opt.ru, cleaning.ua. 

В доменное имя можно добавить ключевые слова, которые соответствуют контенту сайта. Это положительно повлияет на SEO и поможет в привлечении целевой аудитории. 

Основные признаки хорошего домена: 

  1. Краткость. Выбранное имя должно быть коротким. Так его будет проще написать в поисковой строке. 
  2. Запоминаемость. Если люди быстро запомнят адрес вашего сайта, они могут ввести его в поиске по памяти. А вот когда пользователь забыл адрес и начинает искать его в браузере, он вполне может уйти к конкурентам. 
  3. Ассоциативность. Желательно, чтобы домен отображал тематику сайта или ассоциировался с компанией. Это помогает запомнить адрес. 
  4. Лёгкость произношения. Адрес домена должно быть удобно сообщить в устной беседе или произнести по телефону. 
  5. Отсутствие «сложных» букв. Некоторым русским буквам при транслитерации соответствует несколько букв латинского алфавита или одну и ту же букву можно транслитерировать по-разному. Например — русская «ф» может выглядеть как «f» или ««ph», а русскую «и» можно написать как «i» или «y». Постарайтесь избегать таких символов. 

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

  • общая длина варьируется от 2 до 63 символов; 
  • в качестве промежуточных символов можно использовать латиницу, цифры, дефис; 
  • название не начинается с дефиса; 
  • прописные и строчные буквы равнозначны; 
  • при регистрации в зоне .рф или .рус применяют кириллицу. 

При этом применяется так называемый Punycode. Это способ перевода кириллицы в латинницу, т.к. адрес домена формально может содержать ТОЛЬКО латинские буквы. Поэтому у любого кириллического домена есть «страшное» название латинницей (например сайт «юнисендер.рф» будет иметь вид «xn--d1abbjycxd8i.xn--p1ai»).

Технический директор Mailfit

Как зарегистрировать доменное имя и сколько это стоит

  1. Регистрируйте домен на компанию. Если доменное имя организации регистрируют на сотрудника, то он будет собственником имени даже после увольнения. В случае «сложных» расставаний могут возникнуть проблемы с перерегистрацией доменного имени.
  2. Если для создания сайта пользуетесь услугами веб-студии, укажите в договоре, что домен принадлежит именно вам. 
  3. Не озвучивайте название вашего будущего домена.
  4. Вовремя продлевайте домен, иначе он будет доступен для регистрации первому обратившемуся.
  5. Не регистрируйте домены, совпадающие с чужими товарными знаками. Узнать, зарегистрировано ли интересующее вас доменное имя кем-то другим, можно с помощью сервиса Whois.

Что делать, если желаемый домен занят:

  • свяжитесь с администратором домена через форму обратной связи Whois-сервиса;
  • попробуйте договориться с администратором о продаже доменного имени, но адекватно оценивайте предполагаемую стоимость;
  • зарегистрируйте доменное имя в зоне .РФ.

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

Что такое Координационный центр доменов и чем занимается

Координационный центр выполняет функции национальной регистратуры, вырабатывает правила регистрации доменных имен в доменах .RU и .РФ, аккредитует и организует работу регистраторов. Он также обеспечивает целостность, стабильность и защищенность функционирования российского национального сегмента интернета.

Как выбрать регистратора

Регистраторы — это компании, аккредитованные для регистрации новых доменных имен и продления уже существующих. Регистрировать домены нужно только у аккредитованных регистраторов, список которых есть на сайте Координационного центра.

При выборе регистратора:

  • почитайте отзывы;
  • оцените удобство личного кабинета и панели управления на сайтах регистраторов;
  • сравните дополнительные услуги.

Дополнительные услуги регистраторов:

  • виртуальный хостинг — размещение сайтов невысокой сложности: личные страницы и проекты;
  • СМS-хостинг (Content Management System, система управления контентом). Как правило, оптимизирован для работы с CMS-системами, например, с WordPress, Joomla!, «Битриксом», Drupal, MODX и OpenCart.
  • виртуальный сервер VDS — достойная альтернатива выделенному серверу и решение для тех, чьи потребности выходят за рамки виртуального хостинга;
  • аренда сервера в надежном дата-центре, предоставляют решения на базе серверных процессов и неограниченный трафик;
  • SSL-сертификат — цифровая подпись сайта для надежной защиты при передаче данных;
  • внесение информации о товарном знаке в Депозитарий (TMCH);
  • защита от киберсквоттинга;
  • магазин доменов.

С подробной информацией об услугах можно ознакомиться на сайтах регистраторов.

Стоимость регистрации домена у регистраторов может отличаться и варьируется в среднем от 150 до 800 рублей. Средняя стоимость продления домена — 500-800 рублей в год.

Как выбрать хостинг

Хостинг — это услуга по предоставлению пространства для размещения страниц сайта. Информация размещается на сервере, который постоянно находится в интернете.

Вместе с пространством для сайта вы получаете место для почтовой корреспонденции, баз данных, DNS и файловое хранилище.

При выборе хостинга обратите внимание на такие параметры:

  1. Размер дискового пространства под файлы пользователя. Если планируется сайт-визитка, одностраничный сайт, то достаточно базового тарифа при выборе хостинга. Как правило, это 3-4 ГБ с возможностью размещения до десяти сайтов. Пользователь может начать с базового варианта, а затем перейти уже на более серьезный тариф.
  2. Количество месячного трафика.
  3. Количество сайтов, которые можно разместить. Ниже схема размещения нескольких сайтов на одном доменном имени:

    Например, на домене mos.ru находятся разные сайты:

    • mos.ru — портал правительства Москвы;
    • avtokod.mos.ru — портал «Автокод» (проверки автомобилей);
    • mosapps.mos.ru — мобильные приложения и сервисы правительства Москвы;
    • beta-my.mos.ru — единый личный кабинет.
  4. Количество почтовых ящиков и объем почтового пространства.
  5. Количество баз данных и размер дискового пространства под них.

Что проверить перед регистрацией

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

Можно бесплатно использовать Whois-сервис для поиска свободных доменов. Например, проверим у регистратора REG.RU адрес vk.com.

Укажем в поисковой строке адрес и кликнем «Проверить». Спустя несколько секунд увидим ответ системы — «Домен занят».

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

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

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

При проверке истории через Whois доступны разные типы запросов

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

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

Вы также можете проверить содержание старого сайта, поискав его в веб-архивах (к примеру в Web-archive). На сохранённых копиях веб-страниц посмотрите контент, дизайн, тематику. Если доменное имя использовалось для сайта сомнительного содержания или компании с плохой репутацией, лучше его не приобретать. 

Сервис проверки доступности доменов KnowEm

Может ли ваш личный компьютер быть сервером?

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

Хотя ваш домашний компьютер и может выступать в роли сервера, всегда помните о следующих моментах:

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

Что такое VPN? Устройства ввода данных

Как работают доменные имена

Доменное имя каждого сайта зарегистрировано в специальных системах. Это опять же сравнимо с адресом: городская администрация дает названия улицам и нумерацию домам, и все это зафиксировано официально. Но компьютеры «общаются» через IP, поэтому им нужно проводить соответствие между доменом и IP-адресом. И вот как работает доступ к сайту по доменному имени.

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

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

Резолвер. Браузер обращается к DNS-резолверу — специальному удаленному серверу на стороне провайдера или администратора сети. В памяти резолвера хранится база соответствия доменного имени и IP-адреса. Он выдает ответ, браузер переходит по нужному адресу, и сайт открывается.

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

Поиск кажется длинным, но в действительности он занимает всего несколько миллисекунд.

Что такое клиент?

Клиент – это программное обеспечение, которое работает на компьютере пользователя (ноутбуке, iPad, смартфоне) и может взаимодействовать с сервером.

В приведенном выше примере клиентом является ваш браузер. Он может интерпретировать информацию (HTML и CSS, изображения, видео), которую сервер отправляет, и отображать ее в понятной форме. Он может принимать ваши данные (текст, аватары, видеозаписи) и отправлять их на сервер для манипулирования и/или сохранения.

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

Давайте для примера рассмотрим мобильное приложение facebook.

Оно работает на компьютере пользователя (смартфоне). Оно отправляет информацию на сервер и получает ее оттуда же. Подумайте. Если вы купите новый телефон и войдете в приложение facebook, на нем будет отображаться информация (ваши комментарии, фотографии, лайки и т. д.), которую вы сохранили в facebook до этого. Откуда он получает эту информацию? Он просит сервер facebook отправить ее.

Виды серверов

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

Онлайн-сервер (или веб-сервер)

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

Почтовый сервер

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

Файловый сервер

Используется для предоставления доступа к файлам сети другим компьютерам. То есть люди с разных ПК могут обмениваться между собой файлами (загружать, скачивать) или получать доступ к хранящимся на сервере данным. В таких ситуациях серверное оборудование должно иметь достаточно места на жестком диске для хранения документов, изображений, видео и т. д. Для обмена файлами используется протокол FTP.

Серверы баз данных

Почти все программы используют базы данных. Например, для хранения информации обо всех аккаунтах (персональные данные, логины, пароли и т. д.). Сервера баз данных выступают в роли этого хранилища. Для корректной обработки некоторых запросов пользователя (например, авторизация на сайте) требуется сверить данные с имеющимися в базе. В зависимости от соответствия/несоответствия система дает тот или иной отклик (вход в личный кабинет или оповещение о том, что логин или пароль введен неверно).

Прокси-сервер

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

Принт-сервер

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

Игровой сервер

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

Что делают серверы

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

Например, запросы могут быть такими:

  • дай фотографию aguilera.jpg из папки pics;
  • сохрани у себя файл cambio_dolor.mp3;
  • отрисуй кусочек карты вот с такими координатами и таким-то масштабом;
  • пришли сообщения, которые я ещё не прочитал;
  • обработай json;
  • прими данные, введённые в форму.

А вот как серверы могут реагировать:

  • никак, если запрос составлен неправильно или у пользователя нет прав на такой запрос;
  • выполнить запрос;
  • сообщить об ошибке;
  • и ещё могут быть любые действия, на которые их запрограммировали.

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

Принцип 1. Клиент-серверная архитектура

Сама концепция клиент-серверной архитектуры заключается в разделении некоторых зон ответственности: в разделении функций клиента и сервера. Что это означает?

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

Что мы этим добиваемся и как могло бы быть иначе? Давайте представим, что клиент и сервер у нас объединены. Тогда, если мы говорим о мобильном приложении, каждое мобильное приложение каждого клиента должно было бы быть абсолютно самодостаточной единицей. И тогда, поскольку у нас единого сервера нет для получения/отправки информации, у нас получилась бы какая-то сеть единообразных компонентов – например, мобильные приложения общались бы друг с другом – такая распределённая сеть равноценных узлов.

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

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

Также сервер может иметь базу данных (см. рисунок ниже). В данном случае надо понимать, что пара «сервер и БД» тоже будет парой «клиент-сервер». Только в данном случае сервером будет БД, а сам сервер — клиентом.

Трёхзвенная архитектура

Что дает клиент-серверная архитектура и зачем она нужна?

Во-первых, клиент-серверная архитектура дает нам определённую масштабируемость: есть сервер, есть единая точка обработки запросов. При необходимости выдерживать большую нагрузку мы можем поставить несколько серверов. Также к нему можно подключать достаточно большое количество клиентов (сколько сможет выдержать). Таким образом, клиент-серверная архитектура позволяет добиться масштабируемости.

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

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

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

Насколько же сходятся идеи, которые вложил Рэй Филдинг в концепцию REST, с восприятием REST аналитиками?

Давайте рассмотрим наиболее частые заблуждения, которые вы можете встретить относительно концепции REST.

1. Ограничения REST опциональны (необязательны)

С точки зрения создателя этой концепции существует ровно одно необязательное ограничение — код по требованию. Все остальные ограничения должны выполняться. Если одно из них не выполняется — это уже не REST-подход.

2. REST — протокол передачи данных

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

Но, в целом, REST — это концепция, парадигма, но не протокол. В отличие от HTTP, который действительно является протоколом.

3. REST — это всегда HTTP

С одной стороны, ни один из архитектурных принципов REST не говорит нам о том, какой транспорт мы должны использовать — HTTP или очереди.

Но при этом в жизни очень часто встречаются люди, для которых REST и HTTP — это аксиома.

Поэтому, если сказать человеку, что REST — это необязательно HTTP, то вас могут посчитать сумасшедшими.

Почему же все считают, что REST — это HTTP? Здесь нужно сделать ремарку, что одним из главных авторов протокола HTTP — это Рэй Филдинг, автор концепции REST. Рэй Филдинг стремился спроектировать HTTP так, чтобы с помощью него концепцию REST было максимально удобно реализовывать.

4. REST — это обязательно JSON

Почему так сложилось? Главная причина в том, что какое-то время назад сервисы вида JSON over HTTP стали противопоставлять SOAP. JSON одновременно стал популярным и стал антагонистом XML, как SOAP подходу. JSON использовался, потому что это не SOAP.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: