Rusau LearnВойти

Тестирование веб-приложений

URL, IP-адрес, маска подсети, DNS, кэш и куки простыми словами

URL – это уникальный адрес ресурса в интернете: протокол, доменное имя, путь, параметры. Компьютеры находят друг друга по IP-адресу, числу длиной 32 бита в IPv4 или 128 бит в IPv6, и маска подсети отделяет в этом адресе номер сети от номера устройства. DNS переводит доменное имя в IP-адрес, чтобы людям не приходилось помнить цифры. Кэш браузера хранит файлы сайтов, чтобы страницы открывались быстрее, а куки хранят данные пользователя: признак входа, настройки, содержимое корзины.

Мой видеоурок: Урок 13. URL адрес. Что такое IP адрес и маска подсети? DNS сервер. Кэш и кукиОткрыть на YouTube
32 и 128 бит
длина IP-адреса в IPv4 и в IPv6
0–255
предел каждого из четырёх чисел в адресе IPv4
Бесплатно
урок с заданиями в моём базовом курсе

URL, URI и URN: в чём разница

Открывая сайт, человек первым делом вводит в адресную строку URL (Uniform Resource Locator). Это уникальный адрес ресурса в сети, который говорит, где ресурс находится и как к нему подключиться.

Рядом стоят ещё два понятия. URN (Uniform Resource Name) – это неизменное имя ресурса. Оно называет ресурс, но не говорит, где он лежит и каким способом его получить. Формальный URN выглядит, например, так: urn:isbn:0451450523, это номер книги, по которому её узнают в любой библиотеке. URI (Uniform Resource Identifier) обозначает идентификатор вообще, и им бывает локатор, имя или то и другое сразу. Поэтому и URL, и URN тоже считаются URI.

В примере из урока локатором служит весь адрес вместе с протоколом, а именем только название файла в конце: для имени способ подключения и место не важны. Ниже по частям разобран адрес https://shop.example.com:443/catalog/phones?color=black&sort=price#reviews.

  • Протокол

    Способ подключения: HTTP, HTTPS, FTP. Он стоит первым и отделяется знаками ://.

  • Доменное имя

    Понятное человеку имя сервера, здесь shop.example.com. Браузер превращает его в IP-адрес через DNS.

  • Порт

    Число после двоеточия, которое указывает, какая программа на сервере примет запрос. Для HTTP по умолчанию это 80, для HTTPS 443, поэтому в обычных адресах порт не пишут.

  • Путь

    Адрес ресурса на сервере, здесь /catalog/phones.

  • Параметры

    Стоят после знака ?, а друг от друга отделяются знаком &. Их видно, например, при фильтрации товаров в интернет-магазине: color=black&sort=price.

  • Якорь

    Стоит после знака # и ведёт к определённому месту той же страницы, например к разделу с отзывами.

  • Как это проверяют

    Путь и параметры тестировщик меняет прямо в адресной строке. В интернет-магазине это sort=abc вместо sort=price, page=-1 или page=99999 в каталоге и чужой номер заказа в адресе вида /orders/1052. Сайт должен показать понятную ошибку или страницу по умолчанию, а не упасть с ошибкой 500, и тем более не должен открыть чужой заказ.

Что такое IP-адрес и MAC-адрес

IP-адрес – уникальный сетевой адрес узла в компьютерной сети, построенной на протоколе IP. Чтобы открыть сайт, компьютер должен знать IP-адрес сервера, на котором этот сайт расположен.

В версии IPv4 адрес – это 32-битное двоичное число: четыре группы по 8 бит, то есть четыре байта. В двоичном виде такая запись громоздкая, поэтому каждую группу переводят в десятичное число и разделяют точками, например 192.168.2.10. Ни одно из четырёх чисел не бывает больше 255. Адресов IPv4 на все устройства не хватает, и в версии IPv6 адрес занимает 128 бит. Его записывают шестнадцатеричными группами через двоеточие.

Адреса бывают статическими и динамическими. Статический закреплён за устройством и не меняется. Динамический назначается автоматически при подключении к сети и действует ограниченное время, обычно до конца сеанса.

MAC-адрес – физический адрес устройства. Его записывают в сетевую карту при производстве, а выглядит он как шесть пар символов через двоеточие, например 00:1B:44:11:3A:B7. На собеседовании могут спросить, сколько MAC-адресов в системе. Их столько же, сколько сетевых карт во всём её оборудовании, и сетевой принтер со своей картой тоже попадает в этот счёт.

Двоичная запись и маска подсети

Перевести число из десятичной системы в двоичную на листе бумаги иногда просят на собеседовании. Мне такого вопроса не задавали, но на курсе, который я проходил сам, эти переводы разбирали. Онлайн-конвертеры и калькулятор Windows в режиме программиста делают то же самое, и всё же способ вручную стоит знать.

Когда IP-адрес назначают интерфейсу, например сетевому адаптеру компьютера или маршрутизатора, вместе с ним задают маску подсети (subnet mask). По маске каждое устройство понимает, кто находится с ним в одной подсети, а кто за её пределами. Маска – тоже 32 бита, но нули и единицы в ней не чередуются: сначала идут только единицы, потом только нули. Поэтому её пишут коротко, числом единиц после косой черты. Запись 192.168.2.10/25 означает маску из 25 единиц, то есть 255.255.255.128.

Адрес подсети получают, перемножая адрес и маску бит за битом. Где в маске единица, бит адреса сохраняется, где ноль, он обнуляется. Ниже оба перевода и маска разобраны на числах.

  • Из десятичной в двоичную

    Число делят на 2 и записывают остаток, пока делить не станет нечего. В уроке это число 19. Сначала 19 : 2 = 9, остаток 1, затем 9 : 2 = 4, остаток 1 и 4 : 2 = 2, остаток 0. Дальше 2 : 2 = 1, остаток 0 и 1 : 2 = 0, остаток 1. Остатки читают от последнего к первому и получают 10011.

  • Из двоичной в десятичную

    Цифры нумеруют справа налево, начиная с нуля. Каждую умножают на 2 в степени своего номера, а результаты складывают: 1 × 16 + 0 × 8 + 0 × 4 + 1 × 2 + 1 × 1 = 19.

  • Целый IP-адрес

    Каждое из четырёх чисел переводят отдельно и дополняют нулями слева до восьми знаков. Адрес 192.168.2.10 в двоичном виде выглядит так: 11000000.10101000.00000010.00001010.

  • Адрес подсети для /25

    Первые три числа маски состоят из одних единиц, поэтому 192.168.2 сохраняется целиком. Последнее число адреса 00001010 при маске 10000000 даёт 00000000. Получается подсеть 192.168.2.0/25, в неё входят адреса от 192.168.2.0 до 192.168.2.127.

  • В одной подсети или нет

    У адреса 192.168.2.200 последнее число 11001000, и с той же маской выходит 10000000, то есть подсеть 192.168.2.128. Значит, 192.168.2.10 и 192.168.2.200 при маске /25 находятся в разных подсетях, хотя первые три числа у них совпадают.

  • Где это встречается в работе

    В админке SaaS-сервиса бывает настройка "вход только из сети офиса", куда вписывают подсеть, например 203.0.113.0/25. По тому же расчёту в неё входят адреса от 203.0.113.0 до 203.0.113.127, и тестировщик проверяет вход по обе стороны границы: с 203.0.113.127 вход должен пройти, с 203.0.113.128 уже нет. Ошибка в маске здесь закрывает вход части сотрудников или открывает его посторонним.

Что такое DNS и как браузер находит сайт

Если бы каждый сайт приходилось открывать по IP-адресу, держать в голове пришлось бы сотни чисел. Поэтому ещё в 1980-х годах появилась система доменных имён, DNS (Domain Name System). В ней понятному буквенному имени, домену, сопоставлен IP-адрес. Когда вы вводите имя в браузере, DNS-серверы переводят его в IP-адрес сервера, и уже по нему браузер получает страницу.

  • 1. Ввод адреса

    Пользователь вводит доменное имя в адресную строку браузера.

  • 2. Поиск в кэше

    Браузер и операционная система проверяют свой DNS-кэш, временное хранилище ответов: известно ли уже, какой IP-адрес соответствует этому домену.

  • 3. Запрос к DNS-серверу

    Если в кэше ответа нет, компьютер обращается к DNS-серверу, обычно у провайдера, и получает IP-адрес. У этого сервера тоже есть кэш, а если ответа нет и там, он собирает его по цепочке через серверы нескольких уровней: корневой, доменной зоны и самого домена.

  • 4. Запрос к сайту

    Зная IP-адрес, браузер отправляет запрос на сервер сайта.

  • Где это встречается в работе

    Новую версию сайта иногда поднимают на тестовом сервере под боевым именем, и тестировщику дают строку для файла hosts, например 10.0.0.15 shop.example.com. В Windows файл лежит в C:\Windows\System32\drivers\etc\hosts, в macOS и Linux это /etc/hosts. Компьютер читает его раньше, чем спрашивает DNS-сервер, и shop.example.com открывается с тестового сервера. После проверки строку удаляют, иначе сайт так и будет открываться с теста.

Кэш и куки: в чём разница

Кэш браузера – данные сайтов, которые браузер сам сохраняет на диск: элементы дизайна, картинки, видео, музыку. При следующем открытии страницы часть данных берётся с диска, а не с сервера, поэтому страница грузится быстрее, а сервер получает меньше запросов.

Куки (cookies) – небольшие фрагменты данных, которые сервер отправляет браузеру. Браузер хранит их на компьютере пользователя и отправляет обратно с запросами к тому же сайту. В куках лежат личные данные: признак того, что вы вошли (обычно идентификатор сессии или токен), настройки сайта, товары в корзине. Благодаря им корзина не пустеет после перезагрузки страницы, а в социальную сеть не приходится каждый раз входить заново. По куки также подбирают рекламу под интересы пользователя.

Сессионные куки удаляются, когда закрывают браузер, и живут один сеанс. Постоянные хранятся до определённой даты или в течение заданного срока.

Тестировщику кэш и куки чаще всего попадаются в таких ситуациях.

  • Исправление не видно

    Разработчик говорит, что поправил вёрстку, а у вас всё по-старому. Браузер мог взять стили из кэша, поэтому перед повторной проверкой кэш очищают или открывают страницу в режиме инкогнито.

  • Выход из аккаунта

    После выхода сайт не должен пускать в личный кабинет без нового входа, даже если открыть адрес кабинета напрямую.

  • Удалённые куки

    Если удалить куки вручную, сайт должен попросить войти заново и при этом не сломаться. Посмотреть и удалить куки можно в DevTools на вкладке Application.

  • "У меня работает"

    Когда сайт открывается у одного человека и не открывается у другого, причиной бывает кэш браузера или устаревшая запись в DNS-кэше. Поэтому в баг-репорте полезно указать, чистили ли кэш и в каком режиме открывали страницу.

Видеоурок, шпаргалки и задания

Эти понятия я разбираю в 13-м уроке курса "Тестировщик с нуля" на YouTube и показываю перевод чисел между системами счисления на примерах. В бесплатном базовом курсе по тестированию тема идёт уроком "URL, IP, DNS. Кэш и куки". К теории там добавлены части URL, MAC-адрес и виды куки, а после неё идут задания, в том числе на перевод IP-адреса из двоичного вида в десятичный.

Шпаргалка о сети разбирает URL по частям, путь DNS-запроса и уровни моделей OSI и TCP/IP. Вторая шпаргалка сравнивает куки, кэш и другие хранилища браузера по сроку жизни и собирает баги, которые в них прячутся.

Курсы по теме

Вопросы и ответы

Чем URL отличается от URI?

URI обозначает идентификатор ресурса вообще. URL – это вид URI, который указывает, где лежит ресурс и как к нему подключиться, то есть содержит протокол и адрес. Другой вид URI называется URN, это имя ресурса без указания места. Поэтому каждый URL считается URI, а обратное неверно.

Что такое IP-адрес простыми словами?

Уникальный номер устройства в сети, по которому компьютеры находят друг друга. В IPv4 это четыре числа от 0 до 255 через точку, например 192.168.2.10, всего 32 бита. В IPv6 адрес длиннее и занимает 128 бит.

Для чего нужна маска подсети?

Маска показывает, какая часть IP-адреса обозначает сеть, а какая устройство в ней. По маске устройство понимает, кто находится с ним в одной подсети. Запись /24 означает 24 единицы в начале маски, то есть 255.255.255.0.

Что такое DNS?

Система доменных имён, которая переводит понятное имя сайта в IP-адрес сервера. Сначала браузер ищет ответ в DNS-кэше на компьютере, а если его там нет, спрашивает DNS-сервер, обычно у провайдера.

Чем кэш отличается от куки?

Кэш хранит файлы сайта, например картинки, стили и видео, чтобы страница грузилась быстрее. Куки хранят данные о пользователе: признак входа, настройки, корзину. Браузер отправляет их серверу с запросами, и по ним сайт узнаёт пользователя.

Сколько MAC-адресов у компьютера?

Столько же, сколько в нём сетевых карт: у адаптера Wi-Fi и у проводного адаптера адреса разные. Если спрашивают про систему целиком, считают сетевые карты во всём её оборудовании, включая, например, сетевой принтер.

Как перевести IP-адрес в двоичную систему?

Каждое из четырёх чисел переводят отдельно: делят на 2, записывают остатки и читают их от последнего к первому, а потом дополняют нулями слева до восьми знаков. Например, 192.168.2.10 превращается в 11000000.10101000.00000010.00001010.

Посмотреть программы курсов

Программа каждого курса открыта целиком: видны все модули, уроки и число шагов.

Все курсы

Здесь используются cookies: без них сайт не работает, и по ним видно, откуда о платформе узнают.Cookies нужны для входа и учёта переходов. Подробнее