📝 Update

This commit is contained in:
Yury 2022-03-23 21:17:57 +03:00
commit 9fb6259a6c

View File

@ -3,7 +3,7 @@
Данный репозиторий представляет собой наглядную шпаргалку по основным темам в области Backend-разработки. Весь материал разбит на темы и подтемы. Структура материала состоит из 3 частей:
- **Визуальная часть** - различные изображения/таблицы/шпаргалки для лучшего понимания (может отсутствовать). Все рисунки и таблицы сделаны с нуля, специально для этого репозитория.
- **Краткое описание** - очень краткая выжимка информации, позволяющая понять лишь основную суть. На все термины навешиваются гиперссылки ведущие на соответсвующий раздел в Википедии.
- **Краткое описание** - очень краткая выжимка информации с перечнем основных терминов и понятий. На все термины навешиваются гиперссылки ведущие на соответсвующий раздел в Википедии.
- **Ссылки на источники** - ресурсы, где можно найти полную информацию по конкретному вопросу. По возможности мы стараемся указывать максимально авторитетные источники, либо же те, которые предоставляют информацию максимально простым и понятным языком.
Изучать материал можно последовательно шаг за шагом.
@ -20,9 +20,9 @@
- [1. Сеть и интернет](#сеть-и-интернет)
- [Как устроен интернет](#как-устроен-интернет)
- [Браузеры и как они работают](#браузеры-и-как-они-работают)
- [Что такое DNS](#что-такое-dns)
- [Что такое доменное имя](#что-такое-доменное-имя)
- [Браузеры и как они работают](#браузеры-и-как-они-работают)
- [Хостинг](#хостинг)
- [ек протоколов TCP/IP](#cтек-протоколов-tcpip)
- [Проблемы сети](#проблемы-сети)
@ -62,9 +62,8 @@
- [Хост](https://ru.wikipedia.org/wiki/Хост)
> _(host - принимающий)_ любое устройство, которое находится в какой-либо сети.
- [Сервер](<https://ru.wikipedia.org/wiki/Сервер_(аппаратное_обеспечение)>)
>_(serve - обслуживать)_ - специальный компьютер в сети, который обслуживает запросы поступающие от других компьютеров.
>_(serve - обслуживать)_ специальный компьютер в сети, который обслуживает запросы поступающие от других компьютеров.
> - **[Как работает Интернет - MDN (mozilla.org)](https://developer.mozilla.org/ru/docs/Learn/Common_questions/How_does_the_Internet_work)**
> - **[Основы программирования. Как работают сети? - YouTube](https://www.youtube.com/watch?v=k_0BAtyaDio&ab_channel=Winderton)**
@ -73,24 +72,19 @@
<div align="right"><a href="#top">Содержание ⬆️</a></div>
- ### Браузеры и как они работают
<p align="center"><img src="./files/network-internet/Browser.png" alt="Browser"/></p>
- [Браузер](https://ru.wikipedia.org/wiki/Браузер)
> Клиент, с помощью которого можно отправлять запросы на сервер для получения файлов, которые впоследствии используются для отрисовки web-страниц. Большинство пользователей используют именно браузеры для работы в сети Интернет.
> - **[Как работают браузеры — MDN (mozilla.org)](https://developer.mozilla.org/ru/docs/Web/Performance/How_browsers_work)**
<div align="right"><a href="#top">Содержание ⬆️</a></div>
- ### Что такое DNS
<p align="center"><img src="./files/network-internet/dns.png" alt="DNS"/></p>
- [DNS (Domain Name System)](https://ru.wikipedia.org/wiki/DNS)
> Децентрализованная система именования адресов в Интернете, которая позволяет создавать удобные для человека буквеные наименования (доменные имена) соответствующие числовым IP-адресам, которые используются компьютерами.
<<<<<<< HEAD
- [IP-адрес](https://ru.wikipedia.org/wiki/IP-%D0%B0%D0%B4%D1%80%D0%B5%D1%81)
> Уникальный идентификатор устройства находящегося в какой-либо сети.
=======
- [IP-адрес](https://ru.wikipedia.org/wiki/IP-%D0%B0%D0%B4%D1%80%D0%B5%D1%81)
> Специальный номерной идентификатор предоставляемый устройству находящемуся в какой-либо сети.
>>>>>>> 0427c371cf6a5dd4f8a0c8bc15f1a674c765f0a6
> - **[Система доменных имен DNS — YouTube](https://www.youtube.com/watch?v=B0J0c0KLtbQ&ab_channel=AndreySozykin)**
> - **[IP адрес — HackWare.ru](https://hackware.ru/?p=11589)**
@ -108,6 +102,16 @@
<div align="right"><a href="#top">Содержание ⬆️</a></div>
- ### Браузеры и как они работают
<p align="center"><img src="./files/network-internet/Browser.png" alt="Browser"/></p>
- [Браузер](https://ru.wikipedia.org/wiki/Браузер)
> Клиент, с помощью которого можно отправлять запросы на сервер для получения файлов, которые впоследствии используются для отрисовки web-страниц. Большинство пользователей используют именно браузеры для работы в сети Интернет.
> - **[Как работают браузеры — MDN (mozilla.org)](https://developer.mozilla.org/ru/docs/Web/Performance/How_browsers_work)**
<div align="right"><a href="#top">Содержание ⬆️</a></div>
- ### Хостинг
<p align="center"><img src="./files/network-internet/Hosting.png" alt="Hosting"/></p>
@ -134,7 +138,6 @@
- [UDP](https://ru.wikipedia.org/wiki/UDP)
> Простой протокол с быстрой передачей данных. Он не использует механизмов для гарантирования доставки и порядка следования данных. Используется, например в онлайн-играх, где частичная потеря пакетов не критична, но скорость передачи данных имеет гораздо более важное значение. Так же, запросы к DNS-серверам происходят через UDP протокол.
- [MAC-адрес](https://ru.wikipedia.org/wiki/MAC-%D0%B0%D0%B4%D1%80%D0%B5%D1%81)
> Уникальный идентификатор, назначенный сетевому адаптеру какого-либо устройства.
@ -238,8 +241,7 @@
- ### Работа с терминалом
- [Терминал (или консоль)](https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)
> Программа-эммулятор, которая предоставляет вам доступ ко всем возможностям ОС, в отличии от графического интерфейса, функционал которого существенного ограничен. Как правило на серверах отсутствуют графические оболочки, поэтому вам обязательно понадобятся навыки работы с терминалом.
> Программа-эммулятор, в которой для управления компьютером используются специальные текстовые команды. Как правило на серверах отсутствуют графические оболочки, поэтому вам обязательно понадобятся навыки работы с терминалом.
- Основные команды для навигации по файловой системе
```bash
ls # просмотр содержимого директории
@ -259,7 +261,6 @@
find <строка># поиск в файловой системе
du <файл># вывод размера файла или каталога
```
- Команды для получения справочной информации
```bash
man <названиеоманды> # позволяет посмотреть руководство по любой команде.
@ -267,7 +268,6 @@
man -k <слово> # аналогично команде выше
whatis <названиеоманды> # краткое описание команды
```
- Права суперпользователя
> Аналог запуска от имени администратора в Windows.
```bash
@ -381,7 +381,6 @@
- [Служба SSH](https://ru.wikipedia.org/wiki/SSH)
> Позволяет получить удаленный доступ к терминалу другого компьютера. В случае с персональным компьютером, это может понадобиться для срочного решения какой-либо проблемы, а в случае с сервером это вообще очень распространенная практика.
- Базовые комнады
```bash
apt install openssh-server # установка SSH (хотя он почти везде идёт из коробки)
@ -465,11 +464,11 @@
Тем не менее, ниже приведен список конкретных языков, которые [лично по моему мнению](https://github.com/cheatsnake) хорошо подходят для backend-разработки.
- [Python](https://ru.wikipedia.org/wiki/Python) - очень популярный и широко используемый. Лёгкий в изучении, благодаря простому синтаксису.
[Python](https://ru.wikipedia.org/wiki/Python) - очень популярный и широко используемый. Лёгкий в изучении, благодаря простому синтаксису.
- [JavaScript](https://ru.wikipedia.org/wiki/JavaScript) - не менее популярный и практический единственный язык для полноценной Web-разработки. Благодаря платформе [Node.js](https://nodejs.org) последнее несколько лет набирает популярность и в области backend-разработки.
[JavaScript](https://ru.wikipedia.org/wiki/JavaScript) - не менее популярный и практический единственный язык для полноценной Web-разработки. Благодаря платформе [Node.js](https://nodejs.org) последнее несколько лет набирает популярность и в области backend-разработки.
- [Go](https://ru.wikipedia.org/wiki/Go) - язык созданный внутри компании Google. Создавался специально для серверной разработки. Минималистичный, но в то же время обладающий очень богатой стандартной библиотекой.
[Go](https://ru.wikipedia.org/wiki/Go) - язык созданный внутри компании Google. Создавался специально для серверной разработки. Минималистичный, но в то же время обладающий очень богатой стандартной библиотекой.
* ### Базовые знания