Веб-технологии для чайников
Периодически меня просят рассказать о «кухне» веб-разработки, люди,
которые либо имеют гуманитарное образование, либо просто в этом совсем не
разбираются. В таких случаях, быстро прикинув в голове сколько придется
объяснять, я либо рассказываю все при встрече, либо говорю, что когда-нибудь
напишу про все это пост. И вот пришло время для поста, где я попробую простым и
понятным для большинства людей языком рассказать о веб-технологиях и их
применении на практике.
Браузеры
То, что многие люди ошибочно называют «интернет», на самом деле интернетом
не является. Если вы думаете что синий ярлычок с буковкой «e» на рабочем столе
- это интернет, то вы ошибаетесь. На самом деле эта программа называется
«браузер» (browser). На сегодняшний день самыми популярными браузерами для ПК
являются «Internet Explorer», «Google Chrome», «Mozilla Firefox» и очень
популярная в России и нигде более - «Opera». На компьютерах разработанных
компанией Apple преобладает их собственный браузер «Safari», разработанный на
том же движке, что и «Google Chrome», под названием «Webkit».
Браузеры предназначены для того, чтобы просматривать сайты в интернете.
Они являются этаким окном в интернет, интерфейсом, с помощью которого
пользователь взаимодействует с сетью.
Интернет
А что же такое тогда интернет? Интернет - это глобальная сеть компьютеров,
соединенных между собой теми или иными способами. Как именно компьютеры
соединяются мы рассматривать не будем, так как это уже технические детали.
Просто представьте себе что-то вроде паутины, где в роли узлов выступают
компьютеры, а в роли связующих паутинок - провода.
Веб-Сервер
Это слово знакомо многим, но не все знают что это такое. По сути
веб-сервером является компьютер, который соответствующим образом настроен и на
котором установлена специальная программа: тоже веб-сервер. На данный момент
самыми популярными программами веб-серверами являются «Apache», «nginx» и «IIS»
от компании Microsoft.
Веб-сервер определенным образом обрабатывает запросы, поступающие к нему
по проводам от остальных компьютеров в сети интернет и посылает им ответы с
помощью так называемых «протоколов». Углубляться в протоколы мы так же не
будем.
На серверах как раз лежат те самые сайты, по которым мы с вами «ходим».
Сайт - это просто набор файлов, программа, которая написана на веб-языках
программирования.
Клиент
Клиентом называют программу для взаимодействия с сетью на стороне
пользователя. В нашем случае это браузер. Браузер посылает некую информацию
(запросы) серверу, а сервер на них отвечает. Так они общаются. Когда вы
кликаете по ссылке, то клиент (браузер) посылает запрос серверу, на котором
лежит данный сайт. Сервер обрабатывает запрос и посылает в ответ клиенту
информацию, которую тот запросил, или возвращает код ошибки, если эта
информация по каким-либо причинам не доступна. Например, всем знакомая ошибка
404 (страница не найдена).
Информация, которую воспринимает клиент предоставляется сервером в виде
HTML, CSS, JavaScript, а так же различных файлов изображений, шрифтов и
видео.
Доменное имя
Доменное имя, это тот адрес, который вы вводите в адресную строку
браузера, чтобы попасть на сайт. Она располагается наверху. Чтобы проще было
понять, считайте что домен - это имя сайта. Выглядит оно примерно так:
trali-vali.example.ru, где «ru» - это домен 1го уровня, «example» - домен 2го
уровня, а «trali-vali» - домен 3го уровня. Все уровни разделены точками.
Уровней может быть сколько угодно.
Основные сайты, как правило, располагаются на доменах 2го уровня
(yandex.ru). А их «дочерние» сайты находятся на субдоменах, на доменах 3го
уровня (mail.yandex.ru).
Так же этот блог располагается на субдомене сайта веб-студии
polycreative.ru.
HTML
Все языки веб-программирования, которые мы разберем ниже по сути сводятся
к одному HTML - языку разметки. HTML очень простой язык, состоит он из так
называемых «тэгов». Любой тэг выглядит примерно так <tag
attribute="true">тут какой-то контент</tag>. Существуют тэги для
ссылок, картинок, абзацев, заголовков, таблиц, форматирования текста и
многое-многое другое. Различного рода комбинации тэгов и создают в итоге то,
что мы с вами называем сайтом.
CSS
CSS - ближайший помощник HTML. Это таблицы стилей. Без них бы сайты
выглядели как газетные статьи. Просто отформатированный текст сверху вниз и
немного картинок. CSS же позволяет с помощью определенных правил компоновать
блоки HTML, задавать им оформление и расположение на странице. Если
представить, что блоки HTML - это кубики, то в чистом виде они бы были
выстроены один за другим в башенку. CSS же позволяет из этих кубиков построить
полноценный замок.
Правила CSS подключаются к сайту с помощью специальных тэгов в HTML в виде
отдельных файлов или прописываются напрямую в структуре странички.
JavaScript
Клиентский язык программирования. С помощью него наш сайт оживает и
приобретает «поведение». Представьте как будто наш замок из кубиков ожил. По
нему начали ходить солдатики, ворота открываются по наведению на них курсора
мыши, а картинки на кубиках плавно меняются. За все это как раз отвечает
JavaScript. Команды этого языка исполняются прямо в браузере и являются
настоящей магией, так как порой производят «вау-эффект». Всплывающие меню,
появляющиеся новые элементы, красивые эффекты движения - все это
JavaScript.
Однако JavaScript предназначен не только для украшения и «оживления»
сайтов. Сегодня это очень серьезный язык, с помощью которого можно написать
очень и очень многое. Например на нем создают игры и даже серверные
приложения.
Команды JavaScript, как и CSS, подключаются к сайту с помощью специальных
тэгов в HTML в виде файлов или прописываются напрямую в теле станицы.
PHP, Python, Ruby, Perl и другие серверные языки
Многие ошибочно полагают, что все странички на сайтах пишутся в чистом
HTML руками. Раньше конечно так и было, но сегодня все совсем не так.
Веб-серверы позволяют писать довольно сложную внутреннюю логику с помощью
серверных языков. То есть сейчас сайты пишутся на каком-либо из серверных
языков, которые в последствии, исходя из заданной программистом логики, выдают
html-структуру сайта.
Используется это повсеместно, но самым ярким примером являются
интернет-магазины. Чтобы создать интернет-магазин без серверного языка, нам бы
потребовалось создать кучу практически одинаковых html-файлов, различающихся
только картинками и текстом внутри них. Серверный язык позволяет все это
уместить в 1 файлик, где с помощью программной логики будет выясняться какой
именно текст и картинку поместить на страницу, если пользователь перешел по
данной ссылке.
Весь процесс выглядит примерно следующим образом: пользователь жмет на
ссылку, клиент отправляет запрос серверу, сервер понимает, что запрос
соответствует определенному файлу, где содержится определенный код. В коде идет
детальный разбор запроса и, в соответствии с заданной программистом логикой,
клиенту возвращается ответ в виде html-разметки. Клиент это обрабатывает и
выдает пользователю визуальную картинку.
Так же все серверные языки умеют общаться с Базами Данных.
Базы Данных
База данных - это список таблиц с самыми разнообразными данными. Это могут
быть даты, числа, индексы, тексты, коды, логины, пароли и даже картинки.
Сегодня весь веб-контент хранится в базах данных, которые управляются с помощью
языков запросов вроде SQL.
Серверный язык умеет посылать запросы в базу данных и получать из нее
необходимый контент, который затем определенным образом обрабатывает и
впоследствии отсылает клиенту, а тот в свою очередь показывает этот контент
нам, но уже в красивой обертке.
Дизайн
Ну и напоследок про дизайн. Ни один сайт не обходится без дизайна.
Дизайнеры рисуют свои макеты в Photoshop или где им удобно, а затем отправляют
эти файлы верстальщикам, которые с помощью HTML и CSS эти макеты верстают,
предварительно нарезав в том же Photoshop. Затем подключаются серверные и
клиентские программисты (back-end и front-end соответственно). Серверные
разработчики пишут логику каким образом будут формироваться сверстанные
верстальщиком макеты, а клиентские - как они будет вести себя в браузере.
Вот вкратце вся кухня веб-разработки. Если что-то осталось непонятным -
задавайте свои вопросы в комментариях, я с удовольствием на них отвечу.
Комментариев нет:
Отправить комментарий