Internet - DmitryGontarenko/usefultricks GitHub Wiki
URL (Uniform Resource Locator) - единый указатель ресурса. Создан для привидения всех адресов к единому виду и используется как стандарт записи ссылок на объекты в Интернете.
https://habr.com/ru/post/215117/
https://
- протокол
habr.com
- доменное имя или IP-адрес
/ru/post/215117/
- путь
Geographic scale
LAN (Local Area Network) - это локальная, частная сеть. LAN сосредоточенна на небольшой территории.
WAN (Wide Area Network) - это глобальная, публичная сеть, охватывающая большие территории. Как правило, принадлежит провайдеру (для выхода в интернет) или для доступа на сервера компании.
NAT
NAT (Network Address Translation) - это механизм в сетях, который позволяет преобразовать IP-адрес.
Преобразование адреса методом NAT может осуществляться почти любым маршрутизирующим устройством. Реализаций существует несколько, но в общем суть механизма можно описать следующим образом: принимая пакет от локального компьютера, маршрутизатор подменяет его IP-адрес пакета на свой внешний (видимый из интернета) IP-адрес и меняет номер порта (чтобы различать ответные пакеты, адресованные разным локальным компьютерам). Комбинацию, нужную для обратной подстановки, маршрутизатор сохраняет у себя во временной таблице.
Зачем существует такой механизм?
На данный момент в интернете больше всего распространены IP адреса IPv4. Это позволяет создать 4.3 млрд уникальных IP-адресов, однако даже такого количество не хватает (людей уже 8 млрд). Официально в странах СНГ и Европе адреса IPv4 закончились еще 25 ноября 2019 года.
Было придумано несколько решений:
- Усиления контроля за IP-адресами. Неиспользуемые IP-адреса освобождают/изымают.
- Массовое использование IPv6. Этот протокол имеет большее адресное пространство.
- Использование NAT.
Дополнительной функцией NAT является конфиденциальность сети, путем сокрытия внутренних адресов от внешнего мира.
Интернет-провайдеры часто прибегают к использованию NAT. Поэтому если вы видите в настройках роутера один IP, а в браузере совершенно другой, то такой адрес будет считаться "серым" IP (частным/приватным). Это значит, что провайдер преобразует адреса клиентов (в том числе и ваш) во внешние адреса для выхода в интернет. Ведь браузер выдает именно такой IP, с которым к нему обратились.
Если IP-адрес в роутере и IP-адрес, отображаемый в браузере, одинаковы - это называется "белый" IP. Как правило, провайдеры предоставляют белый IP в качестве отдельной услуги.
Domain name
Domain name (доменное имя) - это символьное представление ресурса Интернет-протокола (IP), такого как персональный компьютер, используемый для доступа в интернет, или сервер, где размещен веб-сайт, или сам веб-сайт.
Доменные имена формируются по правилам системы доменных имен (DNS). Структура имен домена и напоминает логическое дерево:
- Корневой домен - является самым верхним уровнем в иерархии DNS и обозначается символом - точкой. Точка не отображается в адресной строке и опускается при ввода домена в поисковой строке браузера.
- Домен первого уровня (top-level domains, доменная зона) - этот домен устанавливает географическую (ru, eu, by) или тематическую (com, org) зону.
- Домен второго (третьего, четвертого и т.д.) уровня (поддомен) - левая часть домена, такие домены открыты для резервирования пользователями, для них задаются произвольные имена.
FQND (Fully Qualified Domain Name) - полное доменное имя, т.е. включает в себя корневое доменное имя .
.
Домен - один "узел" в дереве имен, со всеми подчиненными ему узлами.
Рассмотрим на примере сайта visualstudio.microsoft.com
visualstudio
- домен третьего уровня, который входит в состав домена второго уровня microsoft
, который входит в состав домена первого (верхнего) уровня com
visualstudio.microsoft.com.
- полное доменное имя.
Также существует поддомен www
, который на сегодняшний день считается рудиментом. Но т.к. некоторые ресурсы при переходе на другой сайт могут автоматически прибавлять к имени приставку www
или это сделают сами пользователи - важно настроить автоматический ридерект на сайт без приставки www
. Иначе поисковая система будет считать сайт с поддоменом www
совершенно другим ресурсом. Настройка перенаправления с www
или наоборот производится в конфигурационных файлах сайта.
Например, если в поисковой строке написать www.visualstudio.microsoft.com
, мы все равно перейдем на привычный нам visualstudio.microsoft.com
.
IP-adress
IP адрес - это уникальный номер устройства в сети. IP-адрес присваивается каждому устройству в Интернете. Что бы соотнести доменное имя с IP-адресом сайта, существует специальная система доменных имен или же DNS.
DNS
DNS (Domain Name System, система доменных имен) - распределенная база данных, используемая для получения IP-адреса по имени домена, что бы позволить браузерам загружать интернет-ресурсы. DNS-серверы устраняют необходимость запоминать сложные IP-адреса. DNS поддерживается с помощью иерархии DNS-серверов, взаимодействующих между собой. Каждый сервер, отвечающий за имя, может делегировать ответственность за дальнейшую часть домена другому серверу, т.е. сервер отвечает только за свою часть имени.
В загрузке веб-страницы участвуют 4 DNS-сервера:
DNS-recursor (распознаватель) - это сервер, предназначенный для приема и удовлетворения запросов от клиентских компьютеров через веб-браузеры. Именно он производит запросы на другие сервера, пока не получит результат или не обнаружит, что домена не существует.
Но также он имеет функцию кэширования, что позволяет ему не посылать множество запросов, с целью найти требуемую запись, и если запрос уже производился какое-то время назад, обращения к другим серверам не происходит вообще.
Root nameserver - корневой сервер является первым шагом в преобразовании доменного имени в IP-адрес.
TLD nameserver - сервер домена верхнего уровня, этот сервер служит следующим шагом в поиске IP-адреса, он содержит последнюю часть доменного имени (com, ru).
Authoritative nameserver - этот сервер является "последней остановкой" в запросе сервера имен. Если запрошенная запись имеется на сервере, он вернет IP-адрес запрошенного имени DNS-рекурсору, который сделал первоначальный запрос.
Рассмотрим по шагам получения веб-сайта на основе доменного имени:
- Пользователь ввел
example.com
в браузер, запрос отправился рекурсивному распознавателю DNS; - Распознаватель запрашивает корневой DNS-сервер (
.
); - Корневой сервер отвечает IP-адресом DNS-сервера домена верхнего уровня, в нашем случае
.com
; - Распознаватель отправляет запрос в домен верхнего уровня
.com
; - Домен верхнего уровня отвечает IP-адресом сервера имен домена
example.com
; - Распознаватель отправляет запрос на сервер домена первого уровня;
- Домен первого уровня отвечает IP-адресом запрошенного домена;
- Распознаватель отвечает веб-браузеру полученным IP-адресом запрошенного домена;
- Браузер отправляет HTTP-запрос на полученный IP-адрес;
- Сервер с этим IP-адресом возвращает веб-страницу, отображаемую в браузере.
Доменное имя и IP-адрес не тождественны — один IP-адрес может иметь множество имён, что позволяет поддерживать на одном компьютере множество веб-сайтов (виртуальный хостинг). Обратное тоже справедливо — одному имени может быть сопоставлено множество IP-адресов: это позволяет создавать балансировку нагрузки.
Для повышения устойчивости системы используется множество серверов, содержащих идентичную информацию. Существует 13 корневых серверов, их адреса практически не изменяются.
Протокол передачи данных - набор соглашений, которые определяют способ передачи данных между различными программами. TCP/IP - набор протоколов передачи данных, получивший название от двух принадлежащих ему протоколов: TCP (Transmission Control Protocol) и IP (Internet Protocol).
Сетевой протокол - набор правил и действий, позволяющий осуществлять соединение и обмен данными между двумя и более включенными в сеть устройствами. Например: HTTP, FTP (File Transfer Protocol).
HTTP (HyperText Transfer Protocol, протокол передачи гипертекста) - протокол передачи данных, изначально - в формате HTML, в настоящий момент используется для передачи любых данных.
Основой HTTP является технология «клиент-сервер». Клиентское приложение формирует запрос и отправляет его на сервер, после чего серверное ПО обрабатывает данный запрос, формирует ответ и передаёт его обратно клиенту.
Гипертекст - система из текстовых страниц, имеющих перекрестные ссылки.
HTTPS (HyperText Transfer Protocol Secure) - расширение для HTTP, которое реализует упаковку передаваемых данных в криптографический протокол SSL или TLS. HTTPS широко используется для защиты информации от перехвата.
Прокси-сервер (proxy) - промежуточный сервер (комплекс программ), выполняющий роль посредника между пользователем (клиентом/браузером) и сервером. При этом о посредничестве могут не знать обе стороны.
При запросе какого-либо ресурса через прокси-сервер, прокси либо подключится к указанному серверу и получит ресурс у него, либо вернет ресурс из собственного кеша.
Прокси-сервер позволяет сохранить анонимность клиенту, защититься от некоторых сетевых атак, ограничить доступы к некоторым веб-ресурсам или обойти ограничения доступа.
Прокси не шифрует данные, в отличии от VPN.
VPN (Virtual Private Network) - это технология, позволяющая обеспечить сетевое соединение поверх другой сети (например Интернет). При обращении к VPN, все данные подвергаются шифрованию (но такие средства защиты могут сильно различаться, в зависимости от поставщика услуг).
Сессия - промежуток времени между первым и последним запросами, которые пользователь отправляет со своего устройства к серверу сайта. Во время одной сессии все действия пользователя могут хранится в лог-файле сайта. Завершается сессия в том случае, если со стороны пользователя не поступло запросов в течении определенного промежутка времени или же при обрыве связи.
Сессия не конкретная технология - это некая методика, которая позволяет отличать одного клиента от другого.
Cookie - небольшой фрагмент данных (ключ-значение), отправленных веб-сервером и хранимый на стороне пользователя. При каждом последующем посещении сайта, веб-клиент (браузер) пересылает их обратно веб-серверу в составе HTTP-запроса.
Куки используются для сохранения данных на стороне пользователя и применяется для:
- аутентификации пользователя;
- хранения персональных данных и предпочтений пользователя;
- ведения статистики о пользователях.
Идентификация - процедура распознавания субъекта по его идентификатору (логину, телефону, электронной почте).
Аутентификация - процедура проверки подлинности, например, проверка путем сравнения введенного пароля (для указанного логина) с паролем, сохраненным в БД.
Авторизация - процедура предоставления субъекту определенных прав. Авторизация производит контроль доступа к различным ресурсам системы уже после успешного прохождения аутентификации пользователем.
Пример: для доступа к ресурсу требуется прохождения процесса идентификации, а затем процесса аутентификации. После успешного прохождения обоих процессов, пользователь наделяется полномочиями для работы с ресурсом, то есть происходит процесс авторизации.
Межсетевой экран (брандмауер, файрвол) - программный элемент компьютерной сети, осуществляющий контроль и фильтрацию проходящего через него сетевого трафика в соответствии с заданными правилами.
Порт
Команды для проверки ip и порта
cmd > ping 10.8.0.3
PowerShell > Test-NetConnection 176.120.178.241 -Port
cmd > telnet 176.120.178.241 1194
Для включения telnet в Windows нужно перейти в:
Панель управления > Программы > Все программы > Включение или отключение компонентов Windows > включить Клиент Telnet
cmd > netstat -aon | find "80"
Порты (с протоколом TCP) имеют различные состояния, например:
LISTENING - порт открыт
ESTABLISHED - порт уже используется
Протокол UPD не устанавливает прямое соединение, поэтому для него не не отображается состояние. Адрес, который может использоваться с любым ip, отображается следующим образом:
TCP IPv4 - 0.0.0.0:0,
TCP IPv6 - [::]:0,
UPD v4 и v6 - *:*
Открыть порт
Панель управления > Система и безопасность > Брандмауэр Защитника Windows > Дополнительные параметры > Выбрать правила для входящего или исходящего подключения > нажать Создать правило.
Далее выбрать все необходимые параметры - программу, порт, протокол и правила.
MIME
HTTP Статусы и методы
Источники:
Простым языком об HTTP
Обзор протокола HTTP
How DNS Works