В одной из предыдущих статей я расписал frontend, там все довольно просто. Настало время перейти на темную сторону и заглянуть в бездну backend'а! В целом, людей, знающих как работать с ней меньше чем фронтендеров. Зарплаты чуть выше, так может стоит изучить backend и перейти на темную сторону?
Что backend делает?
Backend играет важную роль - обрабатывает запросы. Наполнение и отправка страниц, работа с базой данных, учет пользователей - все идет только через него. Без backend’а нельзя даже получить статичный файл, не то что динамический контент.
Как взять контроль над тьмой?
Стоит понимать, что темной стороны не существует без светлой.
Перед началом изучения backend’а нужно обязательно изучить основы верстки (html, css) и немного js. Становиться хорошим верстальщиком вам не нужно!
Для изучения работы сервера существуют множество путей. Вам нужен один из этих языков: javascript(node), php, python, c sharp, ruby, java, go. Да, этот выбор не из простых. Если вы хотите работать только в web, то выбирайте node js или php(упаси вас господь с этим связываться). Нужна универсальность? Выбор из c sharp, java и python. Остальные языки более специфичные. что выберите вы?
Оффтоп. Node js или python.
Вообще, при изучении фронтенда довольно быстро учишься работать с node js, поэтому я принял решение изучать именно ноду. Язык абсолютно такой же, что очень удобно. Работать с cms в планы не входило, а значит php отпадает. Python? Звучит хорошо, но нужно изучать новый язык... Еще и обучение выглядело куда сложнее. Ощущение не подвело, на node js + express все шло куда проще. Однако, мне стало интересно, что дает тот же python + django, если он сложнее? И вот, шаг за шагом, я начал изучать django. Результат не разочаровал. Встроенная поддержка сессий, орм, крутая admin панель, система аутентификации и авторизации. В итоге я могу сделать маленький вывод: Node Js + express быстрее в плане обучения, но многое придется писать самому. Нишу они занимают одинаковую, так что выбор за вами.
Типы Запросов
Разберемся с типами запросов. Вот список часто используемых: Get, Post, Put, Delete.
Get используется для получения данных. Данные могут быть в html, json, xml форматах. Post нужен для создания чего-либо нового, например статьи. Put для обновления существующего, возможно той же статьи. Delete для удаления.
Хотя, можно обойтись только get и post запросами, делать так, конечно, не стоит.
Отправка запроса из web-страницы
Отправка запроса из web-страницы ведется с frontend стороны. Для этого есть 2 способа: использование html форм и AJAX. Формы используются, когда пользователь может вводить данные для отправки напрямую в текстовые поля. В параметрах формы обязательно должны находится две вещи: action и method. Action отвечает за адрес запроса, а method за тип. В самой форме должны содержаться инпуты с параметром name, хотя также могут содержаться и остальные теги. При обработка запроса на сервере, отправленные данные можно получить, обратившись к его телу.
Примером могут служить формы для входа и регистрации. Вот пример:
Второй способ - Ajax, он же Asynchronous Javascript and XML. В отличии от предыдущего способа, нам не нужно вставлять что-либо в страницу. Вся работа будет происходить из скрипта. Ajax используется для работы с сервером без перезагрузки страницы. Это дает возможность создавать web приложения. Если коротко, то веб приложения сделаны таким образом, что работа с сервером идет абсолютно незаметно для пользователя из-за отсутствия каких-либо переходов. Страница грузится лишь один раз.
Для отправки запроса через скрипт есть 2 инструмента: XMLHttpRequest и fetch. Fetch более удобен, поэтому пример будет использоваться он. Fetch - обычная функция, принимающая 2 аргумента. Первый из них - адрес запроса. Второй - объект с настройками запроса. Если опустить второй параметр, то запрос будет с типом get. Вот пример fetch запроса:
Итоги
В этой статье мы разобрались, что делает backend. Каким образом можно послать запрос. И какие бывают виды запросов. А также какие языки используются для разработки backend. Ждите вторую часть статьи уже скоро!