Я не совсем понимаю «Backend / Serverside», когда речь идет о веб-разработке?

18

Что именно делают программисты на стороне сервера / сервера в мире веб-разработки? Думаю, я не совсем понимаю всю концепцию.

Я сделал макеты HTML / CSS и дизайн сайта и немного SQL с PHP (все еще улучшая свои навыки, для меня это скорее побочный проект). Я также сделал небольшое количество JavaScript / JQuery.

Но я не понимаю работу "бэкэнда", такую ​​как языки сценариев (Rails / Python / etc) и тому подобное. Что именно вы «делаете» с ними?


источник
8
Как вы думаете, куда и как идут вопросы и ответы на этом сайте?
Mayank

Ответы:

17

Если вы использовали PHP, значит, вы работали на стороне сервера!

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

Когда вы писали код PHP, который выполнял операторы SQL, вызовы SQL выполнялись на удаленном компьютере (сервере), и этот результат - обычно в форме сгенерированного HTML - затем отправлялся через Интернет в браузер.

JavaScript, с другой стороны, запускается в вашем браузере. Так же и CSS.

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

jmort253
источник
13

Основная предпосылка:

введите описание изображения здесь

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

По сути, вы хотите, чтобы вся защита и проверка выполнялись на стороне сервера. С тонкостями, работающими на стороне клиента, такими как ненавязчивая проверка форм (вам все равно нужно проверять серверную часть, хотя!).

Большой вопрос: почему?

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


источник
6
Вы не использовали круги от руки. :(
Glasnt
Хорошо, тогда в чем смысл фреймворков веб-приложений?
3
@Mercfh: чтобы упростить. Они дают вам основу, на которой вы можете построить свое видение. Вы хотите построить структуру аутентификации? Как насчет обработки дат, представлений, контроллеров и маршрутизации? Я так не думаю, если это не академическое упражнение. Вам нужен фреймворк, потому что у вас изначально была проблема, которую нужно решить, а обработка дат не была такой. :)
0

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

Большинство веб-сайтов являются лишь интерфейсом, то есть они предоставляют информацию внешнему миру, и в большинстве случаев эта информация может храниться довольно просто в виде текста в файлах HTML.

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

Короче говоря, Front-end (клиент) представит информацию внешнему миру. Обычно это люди через какой-то графический интерфейс, либо HTML, либо иным образом.

Back-end предоставит средства для централизации сервисов, которые будут использоваться вашим клиентом. Использование серверной части не является обязательным и увеличивает сложность системы, но позволяет лучше управлять сложностью, присущей системе, которую вы пытаетесь построить.

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

Newtopian
источник
Ваше объяснение великолепно, за исключением того, что вы говорите, что большинство веб-сайтов - это просто интерфейс Возможно, в 2003 году, но сегодня я говорил, что «большинство», как и большинство, имеют некоторые взаимодействия между сервером и базой данных.
Кайл
Глядя на SO, Facebook и все в этом мире, можно было бы перенаправить статический веб-сайт в музей, но все еще есть большое количество сайтов, первых страниц для компаний и т. Д., И это только так. Тем не менее, вы правы, что это имеет тенденцию к значительному снижению, так как простая установка WordPress и небольшая настройка CSS позволят получить тот же результат в гораздо более удобной форме. Обратите внимание на то, что Front end также назначает API RESTfull, который вы открываете на сайте, тогда как backend - это то, как реализован этот API.
Newtopian
0

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

Захари К
источник
0

По моему мнению, работа на стороне сервера (о которой уже упоминалось, это то, что выполняется на сервере, с которого осуществляется доступ к веб-сайту) - это то, что дает сайту реальную жизнь. Большая часть функциональности все еще может быть достигнута с использованием технологий на стороне клиента, но, на мой взгляд, это гораздо более сложный подход и гораздо менее безопасный, поскольку клиенты имеют доступ ко всему, что находится в коде на стороне клиента. PHP и ASP являются в некотором роде гибридными языками программирования, которые предназначены почти исключительно для предоставления содержимого веб-страницы браузеру после выполнения некоторых вычислительных операций. Когда вы начинаете работать с python, ruby, java или другими языками программирования, у вас появляется больше возможностей и возможностей, но немного больше работы для отправки полученной информации клиенту в конце процесса.

Кеннет
источник
0

У любого типичного веб-приложения / веб-сайта есть две стороны.

  1. Лицевая сторона - какой элемент управления является пользовательским интерфейсом / макетом / цветами / шрифтами и т. Д.

  2. Задняя сторона - обрабатывает манипуляции с данными в базе данных или манипулирует файлами, выполняет много логики, если это так, делает это, если не делает этого, и т. Д. Интегрируется с программным обеспечением веб-сервера, таким как Apache / IIS / etc, и сервером базы данных. программное обеспечение, такое как MySQL / PostreSQL / MS SQL Server.

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

Затем он подготавливает и отображает эти данные, как настроена передняя сторона.

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

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

crosenblum
источник