<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Максим Кузнецов: заметки с тегом основы</title>
<link>https://maxkuznetsov.ru/tags/osnovy/</link>
<description>Простыми словами о веб-разработке</description>
<author>Максим Кузнецов</author>
<language>ru</language>
<generator>E2 (v3559; Aegea)</generator>

<itunes:owner>
<itunes:name>Максим Кузнецов</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Простыми словами о веб-разработке</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Как работает веб, или что происходит, когда вы сёрфите в интернете</title>
<guid isPermaLink="false">24</guid>
<link>https://maxkuznetsov.ru/all/how-web-works/</link>
<pubDate>Fri, 10 Apr 2020 19:16:12 +0300</pubDate>
<author>Максим Кузнецов</author>
<comments>https://maxkuznetsov.ru/all/how-web-works/</comments>
<description>
&lt;p&gt;Каждый раз, когда вы открываете на компьютере или телефоне google.com, ваш браузер незаметно для вас отправляет множество запросов в интернет. Что это за запросы? Кто на них отвечает? Где хранятся страницы социальных сетей и статьи медиа-проектов?&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://maxkuznetsov.ru/pictures/__surfing2.jpg" width="1280" height="550" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Браузер и веб-сервер&lt;/h2&gt;
&lt;p&gt;Для базового понимания работы веба можно провести аналогию с телевидением.&lt;/p&gt;
&lt;p&gt;Браузеры — Google Chrome, Firefox, Safari, Internet Explorer / Edge — это всего лишь экраны телевизоров, которые показывают программу, записанную и транслируемую откуда-то из далёких телестудий. В вебе такие студии называются веб-серверами.&lt;/p&gt;
&lt;p&gt;Вбивая новый адрес в браузере, вы переключаете канал. Только в отличие от телевидения в интернете этих каналов огромное количество, вы даже можете создать свой, настроив собственный веб-сервер.&lt;/p&gt;
&lt;p&gt;У каждого веб-сервера подобно телеканалу есть свой номер, который называется IP. Чаще всего он выглядит как четыре группы трёхзначных чисел, разделённых точкой — XXX.XXX.XXX.XXX, но может выглядеть иначе — см. &lt;a href="https://ru.wikipedia.org/wiki/IPv6"&gt;IPv6&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Например, Вконтакте имеет IP 87.240.137.158, Facebook — 31.13.72.36, данный блог — 5.63.155.79.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Чтобы нам не пришлось запоминать адреса в виде 87.240.137.158 для посещения контакта, были придуманы доменные имена — это как раз тот понятный и лёгкий для запоминания адрес, что мы вбиваем в браузере: vk.com, facebook.com, maxkuznetsov.ru.&lt;/p&gt;
&lt;p&gt;Поскольку таких пар «IP — домен» по всему интернету огромное количество, то браузер не может все их знать и поэтому он обращается за помощью к DNS-серверу, который работает как адресная книга — по домену выдаёт IP, на который нужно слать запросы, и перенаправляет запрос на нужный веб-сервер в интернете.&lt;/p&gt;
&lt;p&gt;Получив запрос от браузера, веб-сервер отправляет в ответ запрошенную веб-страницу или ошибку, если что-то пошло не так.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://maxkuznetsov.ru/pictures/Screen-Shot-2020-04-10-at-17.49.13.png" width="2114" height="1480" alt="" /&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Если такой страницы не существует, браузер покажет ошибку.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Из чего состоит веб-страница&lt;/h2&gt;
&lt;p&gt;Веб-страница — это то, что вы видите в браузере. Она представляет собой HTML — обычный текст, но помещённый в специальные символы — «теги», подсказывающие браузеру, где заголовки и списки, а где картинки, формы для пользовательского ввода и, конечно же, ссылки на другие страницы. Ссылки — они же гипертекс — в своё время и сделали веб таким удобным и популярным.&lt;/p&gt;
&lt;p&gt;Вы можете посмотреть из чего состоит любая веб-страница, кликнув по ней в браузере правой кнопкой мыши и выбрав пункт View Page Source / Посмотреть исходную страницу или что-то аналогичное в зависимости от браузера и языка интерфейса. Скорее всего вы ничего не поймёте, так как помимо HTML-разметки современные веб-страницы включают в себя кучу CSS и Javascript. Первая технология позволяет создавать красивый вид страниц (дизайн), а вторая — анимировать их и расширять функционал: всплывающие окна, проигрыватели аудио и видео, слайдеры, счётчики, метрики, обработка картинок, анимированная галерея фотографий и много чего ещё.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Кратко:&lt;br /&gt;
HTML — это разметка статического контента, задание его структуры&lt;br /&gt;
CSS — наведение красоты, включая простую анимацию&lt;br /&gt;
Javascript — более сложная анимация и дополнительный функционал поверх контента&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Вы можете создавать свои веб-страницы прямо у себя на компьютере. Но чтобы другие люди их увидели, вам нужен веб-сервер, доступный через интернет. Попробуйте создать на своём компьютере файл index.html (скачать &lt;a href="https://gist.github.com/pluseg/11b39b077a90f97f38c67e66b86c248b"&gt;готовый пример&lt;/a&gt;), внутри которого написать&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="html"&gt;&amp;lt;h1&amp;gt;Hello world!&amp;lt;/h1&amp;gt;
&amp;lt;ol&amp;gt;
  &amp;lt;li&amp;gt;Это мой первый&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Сайт&amp;lt;/li&amp;gt;
&amp;lt;/ol&amp;gt;
&amp;lt;button&amp;gt;Супер!&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Сохраните и перетащите файл прямо в браузер — вы увидите ваш первый, хоть и не публичный, сайт.&lt;/p&gt;
&lt;h2&gt;Статические и динамические страницы&lt;/h2&gt;
&lt;p&gt;Все веб-страницы можно условно разделить на два вида — статичные и динамичные.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Статичные — это уже готовый HTML, CSS, Javascript, который веб-сервер сразу же отдаёт по запросу браузера. Пример с index.html выше является статичной страницей. Её контент зафиксирован и будет отображаться одинаково для всех браузеров.&lt;/li&gt;
&lt;li&gt;Динамичные (и их сейчас большинство) страницы можно представить себе как шаблоны итоговых страниц, но с вкраплениями серверного кода. Такой код при выполнении может проверять авторизован пользователь или нет, обращаться к базе данных или сторонним сервисам (например, за курсом валют) и даже полностью менять содержимое страницы, но в конечном итоге он всё равно превращается в HTML, CSS и Javascript, которые веб-сервер отдаёт браузеру.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://maxkuznetsov.ru/pictures/Screen-Shot-2020-04-10-at-18.47.24.png" width="820" height="536" alt="" /&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Так, разные пользователи видят страницу &lt;a href="https://youtube.com"&gt;https://youtube.com&lt;/a&gt; по-разному. Красным выделены те блоки, что «вставляются» серверным кодом, остальная часть страницы имеет одинаковый вид для всех пользователей.&lt;br /&gt;
Серверный код определяет вас по логину и выстраивает контент из ваших предпочтений. При этом шаблон страницы один для всех, что очень удобно, например, при редизайне — можно менять представление сайта без изменения самого контента. Это довольно важный принцип в программировании — разделять логику, данные и их визуальное представление.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Браузеру вся эта кухня не видна, он лишь делает запрос и получает в ответ HTML, CSS и Javascript. Каждый клик по ссылке или отправка формы делает новый запрос на веб-сервер, который начинает весь процесс заново.&lt;/p&gt;
&lt;p&gt;Чтобы посмотреть на запросы, которые отправляет ваш браузер и что он получает в ответ, можно воспользоваться инструментом инспекции кода в браузере. Правый клик в любом месте страницы, выберите пункт «Inspect / Инспектировать элемент» или подобный, а потом перейдите в таб «Netword / Сеть». Перезагрузите страницу и вы увидите, как браузер общается с веб-сервером (или даже несколькими).&lt;/p&gt;
&lt;style&gt;.img-with-border .e2-text-picture-imgwrapper {border: 1px solid gray;}&lt;/style&gt;
&lt;div class="img-with-border"&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://maxkuznetsov.ru/pictures/Screen-Shot-2020-04-10-at-18.42.33.png-1.jpg" width="2560" height="1653" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;См. также:&lt;br /&gt;
—  &lt;a href="https://maxkuznetsov.ru/all/http-basics/"&gt;HTTP: как браузеры и веб-сервера понимают друг друга&lt;/a&gt;&lt;br /&gt;
—  Как поднять свой веб-сервер на NGINX&lt;/p&gt;
</description>
</item>

<item>
<title>Принципы работы docker и примеры использования docker-compose</title>
<guid isPermaLink="false">14</guid>
<link>https://maxkuznetsov.ru/all/docker-basic/</link>
<pubDate>Mon, 23 Mar 2020 13:32:17 +0300</pubDate>
<author>Максим Кузнецов</author>
<comments>https://maxkuznetsov.ru/all/docker-basic/</comments>
<description>
&lt;p&gt;Артём Матяшов записал отличный полуторачасовой урок про основы докера. Можно посмотреть на x1.5 за час.&lt;/p&gt;
&lt;div style="max-width: 640px;"&gt;&lt;div class="e2-text-video"&gt;
&lt;iframe src="https://www.youtube.com/embed/QF4ZF857m44" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Подойдёт начинающим бэкендерам, а также фронтендерам, верстальщикам и всем, кому нужно развернуть проект на один раз и удалить без захламления системы.&lt;/p&gt;
&lt;p&gt;Однозначно лайк!&lt;/p&gt;
</description>
</item>


</channel>
</rss>