Защищаем приватные ключи от кражи из VPS. URL адрес что это такое Сообщение url http gdg

  • Программирование
  • В начале каждого семестра студенты магистерской программы кафедры МиИТ Академического университета (СПб) и представители компаний-партнеров собираются вместе. Представители рассказывают о проектах, над которыми можно будет работать, а студенты выбирают их.

    В одном из проектов, сделанных в Parallels Labs , наш студент исследовал возможность реализации виртуального Hardware Security Module (HSM) . В результате он добавил свою реализацию VHSM в open-source проект OpenVZ . Подробнее о его решении читайте под катом.

    Что такое HSM

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

    Чтобы начать использовать HSM, пользователь должен себя аутентифицировать. Если аутентификация выполняется через приложение-клиент HSM, работающее в уязвимой части системы, то возможен перехват пароля HSM злоумышленником. Перехваченный пароль даст возможность злоумышленнику использовать HSM без получения секретных данных, хранящихся в нем. Таким образом, аутентификацию желательно выполнять в обход уязвимой части системы, например, при помощи физического ввода PIN.

    Основным барьером в использовании HSM является их высокая стоимость. В зависимости от класса устройства цена может варьироваться от 10$ (USB токены, smart карты) до 30000+$ (устройства с аппаратным ускорением криптографии, защитой от взлома, high availability функциями). Провайдеры cloud решений не оставили без внимания рынок HSM. Например, Amazon продает свой облачный HSM по средней цене 1373$ в месяц.

    Одной из основных особенностей HSM является изоляция уязвимой части системы, использующей криптографические сервисы, от HSM, исполняющей эти сервисы. Заметим, что отдельные инстансы (виртуальные машины, контейнеры и т.д.), в облаке изолированы друг от друга, поэтому если вынести функции HSM за пределы уязвимого инстанса в другой изолированный от внешнего мира инстанс, то мы достаточно точно воспроизведем функциональность физического HSM. Такой подход мы назвали Virtual HSM (VHSM) . Рассмотрим как он был реализован нашим студентом для проекта OpenVZ .

    Что такое OpenVZ

    OpenVZ – это одна из технологий для запуска множества изолированных ОС Linux на одном ядре Linux. При этом говорят, что каждая ОС Linux работает в отдельном контейнере. Если сильно упрощать, то фактически в ядро Linux встроена функциональность, которая позволяет изолировать приложения, приписанные разным контейнерам так, чтобы они не подозревали о существовании друг друга. Приложения не могут сменить свой контейнер. Для лучшей изоляции и безопасности коммуникация между приложениями из разных контейнеров при помощи средств IPC запрещена. Обычно она осуществляется с помощью сетевых соединений. В итоге мы видим сходство контейнеров с “обычными” виртуальными машинами. OpenVZ и технологии на ее основе популярны у хостинг провайдеров для создания VPS. В Академическом университете уже делались проекты, связанные с контейнерной виртуализацией. Например . Parallels – главный разработчик OpenVZ. Вполне закономерной стала реализация VHSM именно для OpenVZ.

    Архитектура Virtual HSM

    • Client VE – контейнер OpenVZ, в котором выполняются пользовательские приложения, требующие для своей работы криптографические сервисы, такие как шифрование, подпись и т.д. Контейнер доступен для удаленных атак с целью кражи цифровых ключей.
    • VHSM virtual environment (VHSM VE) - контейнер OpenVZ, в котором запущен VHSM server – демон, принимающий команды от приложений в Client VE и исполняющий их. Никаких других приложений в VHSM VE не запущено. VHSM VE изолирован от обычных пользовательских контейнеров при помощи OpenVZ. У контейнера нет сетевых интерфейсов и он не доступен по сети.
    • Transport – модуль ядра Linux, предназначенный для передачи сообщений из Client VE в VHSM VE и обратно.
    • VHSM API – библиотека, реализующая часть стандартного для HSM интерфейса PKCS #11, передающая команды приложений из ClientVE в VHSM server при помощи transport, и возвращающая результат выполнения команды приложению в ClientVE.
    Рассмотри каждый компонент подробнее.

    VHSM virtual environment

    Сервер VHSM отвечает за аутентификацию пользователей, взаимодействие с хранилищем секретных данных и выполнение криптографических операций. Кроме сервера VHSM, VHSM VE содержит Secure Storage – базу данных, хранящую важную информацию в зашифрованном виде. Каждый пользователь VHSM имеет свой мастер ключ, которым шифруются его данные. Мастер ключ генерируется из пароля пользователя при помощи функции PBKDF2 . Передаваемая ей на вход соль хранится в незашифрованном виде в базе данных. Таким образом, VHSM не хранит мастер ключ пользователя в БД, а использование PBKDF2 существенно снижает скорость перебора исходного пароля пользователя при краже БД.

    Пользователь регистрируется в VHSM администратором, в роли которого может выступать как человек, так и программа. При регистрации пользователя VHSM генерирует 256-битный ключ аутентификации и шифрует его мастер ключом с помощью AES-GCM . Далее, перед использованием VHSM, пользователь аутентифицирует себя парой логин-пароль. Во время аутентификации, мастер-ключ, сформированный из пароля и соли, используется для расшифровывания ключа аутентификации пользователя. Использование GCM позволяет проверить правильность мастер-ключа при расшифровке. Мастер-ключ получается из пароля пользователя, и потому проверка его правильности позволяет проверить и сам пароль пользователя, переданный при аутентификации. После успешной аутентификации пользователю становятся доступны криптографические сервисы, использующие хранящиеся в VHSM цифровые ключи пользователя.

    VHSM требует явного выбора контейнеров, из которых конкретный пользователь может работать с VHSM. Информация о контейнере, из которого получена команда пользователя, предоставляется OpenVZ.

    VHSM API

    Это C-библиотека, находящаяся в пользовательских контейнерах и реализующая часть стандартного для HSM интерфейса PKCS#11, позволяющего управлять ключами, данными, сессиями, цифровой подписью, шифрованием и т.д. Рассмотрим конкретный пример использования VHSM API:
    1. Приложению в пользовательском контейнере необходимо подписать отправляемое сообщение.
    2. При помощи VHSM API приложение генерирует пару открытый-закрытый ключ, получает ID закрытого ключа и открытый ключ.
    3. Приложение передает сообщение в VHSM API для подписывания закрытым ключом с нужным ID. VHSM API возвращает подписанное сообщение.
    4. Подписанное сообщение и открытый ключ передаются получателю сообщения. При этом закрытый ключ не доступен клиентскому контейнеру.
    В клиентской части проекта также были реализованы OpenSSL engine и PAM-модуль, позволяющие работать с VHSM в существующих приложениях, использующих OpenSSL и PAM. Однако, эта часть проекта слабо проработана и представляет собой скорее proof of concept.

    VHSM Transport

    Как было сказано выше, приложения, исполняющиеся в разных контейнерах, не могут взаимодействовать друг с другом при помощи механизмов IPC Linux. Поэтому для транспортировки сообщений от клиентов к серверу и обратно был реализован свой загружаемый модуль ядра Linux. Модуль запускает Netlink-сервер в ядре, а VHSM-клиенты и VHSM-сервер соединяются с ним. Netlink-сервер отвечает за передачу сообщений от источника (клиента VHSM) к приемнику (серверу VHSM) и обратно. Попутно к сообщениям добавляется ID контейнера источника сообщения, чтобы, например, сервер мог отклонить запросы от контейнеров, из которых конкретному пользователю запрещено использовать VHSM.

    Заключение

    Основной целью создания VHSM было исключение возможности кражи секретных ключей из памяти пользовательских приложений, работающих в пользовательском контейнере. Эта цель была достигнута, т.к. секретные данные доступны только в изолированном контейнере (VHSM VE). Изоляция реализуется OpenVZ.

    Утечка БД из VHSM VE не приведет к немедленной утрате секретных данных, т.к. они хранятся в зашифрованном виде. Ключ шифрования не хранится в БД, а генерируется из пароля пользователя, передающегося при его аутентификации.
    Как и любая технология защиты иформации, приведенное решение является еще одним барьером на пути злоумышленника и не обеспечивает полной защиты информации.

    Многие слышали о понятии URL адреса, но немногие знают, зачем он нужен и что собой представляет.

    Поэтому было бы полезно разобрать несколько вопросов, связанных с темой «URL адрес» – что это такое, где используется, какова структура и другие интересные моменты.

    На самом деле, если вы хоть раз в жизни заходили в интернет, значит, пользовались URL адресом. Все намного проще, чем может казаться на первый взгляд.

    Общая информация

    URL адрес – это адрес какого-либо ресурса в интернете.

    Под понятием «ресурс» в прошлом предложении имеется в виду сайт, изображение, документ или что-либо еще, что только может находиться в интернете на каком-то удаленном сервере.

    Существует также chrome, который действует подобным образом. Все же чаще всего мы, обычные пользователи, используем самый обычный http.

    Разработчики пользуются ftp и подобными ему специализированными протоколами.

    Теперь перейдем непосредственно к примеру. Возьмем одну из статей на этом сайте и ссылку на нее – (кстати, очень неплохая статья).

    Так вот, как видим, здесь все соответствует описанное выше структуре.

    Параметр <способ> здесь http, после него идет стандартная конструкция «://»..

    Все, что касается хоста – логин и пароль – обычному пользователю не видно. И после «/» идет непосредственно адрес нужной статьи, это уже параметр <путь>.

    Никаких дополнительных параметров здесь нет.

    Вот так, собственно, и выглядит любой URL адрес в мире.

    Как узнать URL

    Интересно, что многие не знают, где взять этот самый URL адрес. Конечно, если речь идет о сайте, то его можно посмотреть в адресной строке.

    Для примера возьмем ту же описанную выше статью.

    На рисунке №2 показано расположение ее адреса в браузере.

    Стоит отметить, что в браузере обычно не указывается параметр <способ> из вышеуказанной структуры.

    Как видим, и на рисунке №2 рядом с началом адреса нет надписи «http». Это вполне нормально. Обычно данный параметр становится видным уже после копирования данного адреса в буфер .

    Кстати, копирование здесь происходит вполне стандартным способом – нажатием сочетания клавиш Ctrl +C .

    Второй способ заключается в том, чтобы выделить соответствующий текст, нажать на него правой кнопкой мыши и в выпадающем меню выбрать пункт «Копировать», как это показано на рисунке №3.

    Но, как мы говорили выше, URL адрес есть не только у целых сайтов, а и у отдельных файлов, таких как изображения и документы.

    Чтобы узнать их URL, тоже можно нажать на соответствующий файл, к примеру, картинку, правой кнопкой мыши и в меню выбрать пункт «Копировать адрес изображения», как это показано на рисунке №4.

    Если речь все-таки идет о документе, на него тоже всегда можно кликнуть правой кнопкой мыши, после чего увидеть выпадающее меню и в нем выбрать пункт «Копировать адрес ссылки», как это показано на рисунке №5.

    Внимание: В приведенных выше рисунках показано выпадающее меню в браузере Opera. В зависимости от браузера внешний вид данного меню может меняться. Но названия нужных нам пунктов практически всегда остаются неизменными.

    Собственно, это и есть способ, как узнать адрес того или иного ресурса.

    Как видим, в конце находится расширение файла – .jpg. После параметра <хост> здесь после «/» идет многоуровневый адрес доступа к фотографии.

    Такой адрес означает, что картинка с названием «kak-v-vk-zakrepit-zapis-na-stene-%E2%84%9611-650×406.jpg» находится на хосте сайт в папке под названием «wp-content», внутри которой находится папка «uploads», внутри неё «2016», а в ней еще и папка «03».

    В принципе, в данном адресе все предельно ясно. Вопросы вызывает лишь вот эта конструкция: «%E2%84%9611». Это зашифрованный фрагмент адреса.

    Итак, где взять этот адрес сайта или иного ресурса, мы уже разобрались. Но иногда при копировании, к примеру, вот такого: «https://ru.wikipedia.org/wiki/Смартфон » копируется что-то вот такое:

    • «https://ru.wikipedia.org/wiki/%D0%A1%D0%BC%D0%B0%D1%80%D1%82%D1%84%D0%BE%D0%BD» - это самое обычное шифрование.

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

    И кириллица в него, как мы понимаем, не входит. Поэтому, чтобы машина могла понять, куда ей следует обращаться, происходит шифрование.

    Делается это в два этапа:

    1. Кодирование в Юникод, на выходе – последовательность из двух байтов.
    2. Кодирование в шестнадцатеричный код.

    В более современных браузерах имеет место сначала кодирование в Base58.

    Каждый байт разделяется знаком процента, то есть «%». Собственно, этим и обуславливается то, что мы можем видеть выше.

    Современные браузеры уже не дают пользователю видеть ссылки с шестнадцатеричными цифрами.

    Поэтому если вы копируете ссылку в нормальном виде, а получаете что-то вроде «https://ru.wikipedia.org/wiki/%D0%A1%D0%BC%D0%B0%D1%80%D1%82%D1%84%D0%BE%D0%BD», просто обновите свой браузер !

    История

    История создания URL адресов довольно интересная.

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

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

    Но интересно, что впервые про URL заговорили в Женеве. А изобретателем его считается Тим Бернерс-Ли.

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

    Сначала URL использовали для того, чтобы обозначать расположение отдельных файлов в интернете, но потом специалисты поняли, что это очень удобно и стали применять его для обозначения практически всех возможных ресурсов интернета.

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

    В URL входит, во-первых, имя сайта, а во-вторых, его расположение.

    Существует также URN – это или только адрес сайта/ресурса, или его имя. URI же объединяет в себе URL и URN.

    Изобретена была такая конструкция в том же 1990 году, что и ее прародитель, URL.

    Хотя завершение работы над ней датируется аж 1994 годом. В 1998 году вышла новая версия URI.

    В 2002 году было сообщено о том, что термин URL устарел и лучше использовать вместо него только URI.

    Таким образом, самые использованные способы обозначения расположения файлов в интернете берут свое начало в Женеве, а конкретно в Европейском совете по ядерным исследованиям или просто CERN.

    Последнее более известно тем, кто хоть иногда смотрит новости.

    Перспективы

    У современного URL есть огромное количество недостатков, среди них:

    • Малая гибкость;
    • Проблемы с шифрованием;
    • Указание пути на несуществующие ресурсы;
    • Навязывание ресурсам иерархической структуры (об этом говорил сам создатель URL);
    • Плохая работа с гипертекстовой структурой.

    По этим и другим причинам была предложена совершенно новая интерпретация URL под названием PURL.

    В рамках данного стандарта будет использоваться несколько иной подход.

    Все будет основано на существовании базы данных PURL, в которой и будут храниться все имена и пути к ресурсам.

    Система будет регулярно проверять эти ресурсы и, при необходимости, удалять или обновлять ссылки на них. Таким образом удастся решить три из пяти вышеперечисленных проблем.

    Что касается остальных, специалисты пока что находятся на стадии разработки их решений.

    Ниже можно видеть весьма интересный и занятный ролик про интернет в принципе.

    Его просмотр позволит еще в большей степени понять, что вообще такое URL, и какое место эта конструкция занимает в работе Всемирной паутины.

    История Интернета

    URL адрес страницы сайта: Что это такое и где его взять?

    Запись (публикация, твит и т.д.) в социальной сети - это сообщение, публикуемое пользователем в своём аккаунте, странице или сообществе (группе). Каждая такая запись обычно доступна на отдельной странице, которая имеет свой уникальный URL-адрес. В данной статье я хочу помочь Вам разобраться, как получить такой URL-адрес записи в социальных сетях: Google+, Facebook, Вконтакте, Twitter и Мой Мир@Mail.ru

    URL-адрес записи в соцсетях

    Социальная сеть (англ. social network ) - это Интернет ресурс, предназначенный для построения, отражения и организации социальных взаимоотношений. Основой таких взаимоотношений является общение, построенное на обмене информацией, публикуемой в виде хронологически упорядоченных записей. В большинстве случаев, каждая из них имеет свой уникальный URL-адрес. О том, как его получить читайте дальше.

    Google+ - проект социальной сети компании Google. Чтобы получить URL-адрес записи в Google+, вы можете воспользоваться функцией «Получить ссылку». Для этого найдите в ленте интересующую Вас запись и наведите на неё курсор мыши. В правом вернем углу записи, появится иконка «Действия» (стелочка вниз) - кликните её. В открывшемся контекстном меню найдите и кликните пункт «».

    В открывшемся окне вам будет предоставлена ссылка записи, просто скопируйте её и нажмите кнопку «Готово ».

    Facebook (Фейсбук) - одна из крупнейших социальных сетей в мире, основанная Марком Цукербергом и его соседями по комнате во время обучения в Гарвадском университете в 2004 году.

    Для этого найдите в ленте интересующую Вас запись и кликните ссылку «временной метки», которая находится в верхнем левом её углу, рядом и именем автора.

    Вам останется лишь скопировать полученный URL-адрес публикации из адресной строки Вашего браузера.

    Примечание : у каждого типа публикации в Facebook имеется свой формат URL-адреса. Интересным здесь является динамический вариант отображения фотографии во всплывающем окне, что происходит из-за наличия параметра theater в URL-адресе публикации.

    Для наглядности, я хочу предложить Вашему вниманию видео «How to Get Facebook Post Url» от howtechweb. Оно немного устарело, но суть осталась та же.

    URL-адрес записи во ВКонтакте

    ВКонтакте (VK.com) - крупнейшая социальная сеть в Европе, принадлежащая Mail.Ru Group. В социальной сети ВКонтакте у записей имеется два варианта URL-адреса - статичный (на отдельной странице) и динамичный (во всплывающем окне) .

    Для получения статичного URL-адреса записи на отдельной странице, наведите курсор на временную метку записи и щелкните правую кнопку мыши. В открывшемся контекстном меню кликните пункт «Копировать адрес ссылки ».

    URL будет иметь вид: http://vk.com/wall58447324_841

    Для получения динамического URL-адреса записи во всплывающем окне, кликните «временную метку» (дату публикации) записи на стене, чтобы запись открылась во всплывающем окне и скопируйте URL-адрес записи из адресной строки Вашего браузера.

    Он будет иметь вид: http://vk.com/wmas.online?w=wall58447324_841

    Примечание : во ВКонтакте отдельный URL-адрес имеют не только записи, но и прикреплённые к ним файлы. Например, кликнув прикреплённую к записи фотографию, оно откроется во всплывающем окне по динамической ссылке вида: http://vk.com/wmas.online?z=photo58447324_346975387%2Falbum58447324_00%2Frev - если же открыть картинку в новой вкладке браузера, мы получим статический вариант URL-адреса: http://vk.com/photo58447324_346975387 - но тоже во всплывающем окне.

    Как получить ссылку на статус в Twitter?

    На открывшейся странице, просто скопируйте URL-адрес статуса из адресной строки браузера и используйте её, например.

    URL перенаправление (redirecting), также известное как URL пересылка (forwarding), это метод представления страницы, формы или целого веб-приложения, более чем одним URL адресом. HTTP предоставляет специальный вид ответов, HTTP redirect , для выполнения этой операции, используемой для многих целей: временного перенаправления, пока выполняется обслуживание сайта, постоянное перенаправление, для сохранения работоспособности внешних ссылок, после смены архитектуры сайта, страниц прогресса, пока загружается файл, и так далее.

    Принцип работы

    В HTTP, перенаправление вызывается при отправке сервером специального ответа на запрос: redirects. HTTP перенаправление, это ответы с кодом статуса 3xx . Когда браузер получает ответ перенаправления, он использует новый предоставленный URL-адрес и немедленно загружает его: в большинстве случаев переадресация невидима для пользователя, за исключением небольшого влияния производительность.

    Есть несколько типов перенаправлений и делятся на три категории: постоянные, временные и специальные перенаправления.

    Постоянные перенаправления

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

    Спецификация не была намерена разрешать изменение метода, но на практике, клиентские приложения делают это. Код 308 был создан чтобы избавиться от неоднозначности в поведении, при использовании не- GET методов.

    Временные перенаправления

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

    Код Текст Обработка метода Случаи использования
    302 Found GET методы неизменны.
    Другие методы могут быть превращены в GET .
    Веб-страница недоступна по непредвиденым причинам. В этом случае поисковые роботы не будут обновлять свои ссылки.
    303 See Other GET методы неизменны.
    Другие превращены в GET (тело запроса теряется).
    Используется для перенаправления после PUT или POST для предотвращения обновления страницы, что может спровоцировать повторный вызов операции.
    307 Temporary Redirect Метод и тело запроса неизменны. Веб-страница недоступна по непредвиденным причинам. В этом случае поисковые роботы не будут обновлять свои ссылки. Лучше чем код 302 когда не-GET ссылки/операции доступны на сайте.

    Спецификация не была намерена разрешать изменение метода, но на практике, клиентские приложения делают это. Код 307 был создан чтобы избавиться от неоднозначности в поведении, при использовании не- GET методов.

    Специальные перенаправления

    В добавок к обычным перенаправлениям, есть 2 специальные. Перенаправление с кодом (Not Modified) перенаправляет страницу к локальной закешированной копии (которая была устаревшей), и перенаправление с кодом (Multiple Choice) это ручное перенаправление: тело, представленное браузером, как веб-страница, перечисляет возможные перенаправления и пользователь выбирает одно из них.

    Альтернативные способы указания перенаправлений

    HTTP перенаправления это не единственный способ переадресации. Есть еще два метода: HTML перенаправления используют элемент , и JavaScript перенаправления используют DOM .

    HTML перенаправления

    HTTP перенаправления более предпочтительный способ создания перенаправлений, но, иногда, у веб-разработчиков нету контроля над сервером или возможности настроить его. Для таких особых случаев, разработчики могут создать HTML страницу с элементом и установить атрибуту http-equiv значение refresh в блоке элемент предоставляет общую информацию (метаданные) о документе, которая включает в себя заголовок и ссылки на скрипты и стили."> . Когда страница отображается, браузер найдет этот элемент и перейдет на указанную страницу.

    ServerName example.com Redirect / http://www.example.com

    URL http://example.com/ будет переенаправлен к http://www.example.com/ (но не к http://example.com/other.html)

    Redirect_Match делает то же, но использует регулярное выражение, чтобы определить множество URL адресов, которые подпадут под эффект:

    RedirectMatch ^/images/(.*)$ http://images.example.com/$1

    Все документы в папке images/ будут перенаправляться к другому домену.

    Если вы не хотите устанавливать временное перенаправление, дополнительный параметр (используйте или код статуса HTTP, или ключевое слово permanent) может использоваться чтобы установить другое перенаправление:

    Redirect permanent / http://www.example.com Redirect 301 / http://www.example.com

    Также модуль mod_rewrite может использоваться для создания перенаправлений. Они более гибкие, но сложнее в использовании.

    Nginx

    В Nginx, вы создаете особый серверный блок для контента, который вы хотите перенаправлять:

    Server { listen 80; server_name example.com; return 301 $scheme://www.example.com$request_uri; }

    Чтобы применить перенаправления к папке или подмножеству страниц, используйте директиву rewrite:

    Rewrite ^/images/(.*)$ http://images.example.com/$1 redirect; rewrite ^/images/(.*)$ http://images.example.com/$1 permanent;

    IIS

    В IIS, вы используете элемент для настройки перенаправлений.

    Циклы перенаправлений

    Циклы перенаправлений случаются когда за успешным перенаправлением следует другое, которое уже было выполнено. Другими словами, существует такой цикл, который никогда не закончится и в конечном счете ни одна страница не будет найдена.

    В большинстве случаев это проблема сервера, и если сервер не может обнаружить её, то отправит код статуса Internal Server Error . Если вы встретите такую ошибку вскоре после редактирования настроек сервера, то это скорее всего цикл перенаправлений.

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

    Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

    тогда, как Chrome:

    This Webpage has a redirect loop

    В обоих случаях, пользователь не может ничего сделать (в отличие от ошибки на стороне клиента, например, несоответствие файлов куки или кеша).

    Важно избегать циклов перенаправлений, так как они полностью нарушают работу пользователя.

    Практически каждый работающий в Интернете пользователь встречает в сети упоминания о URL , URL-адресах, приглашениях перейти на какой-либо линк и воспользоваться ссылкой. Для тех, кто не знаком или плохо знаком с данными понятиями, я решил написать материал, в котором расскажу, что это такое URL адрес, как использовать URL, на какие части делится УРЛ, а я также поясню, как найти нужную ссылку в сети.

    URL — это адрес, указывающий путь к интернет ресурсу, на котором размещены различные виды файлов (документы, картинки, видео, аудио и др.). Аббревиатура URL расшифровывается как «Uniform Resource Locator» (Единый Указатель Ресурсов), по-русски она обычно произносится как «урл», «ю-ар-эл», «у-эр-эл», часто используется просто слово «ссылка».

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

    Автором понятия URL считается британец Тим Бернес-Ли, а само изобретение (1990г.) ознаменовало качественный скачок в развитии интернет технологий. Сейчас URL является идентификатором адресов практически всех ресурсов в сети, при этом сам термин URL постепенно заменяется более обширным термином URI (Uniform Resource Identifier – Единый Идентификатор Ресурсов).

    URL постов в социальных сетях


    На какие части делится URL-адрес

    Классический пример URL-адреса выглядит примерно так:

    http://адрес_сайта/папка/страница.html

    Как видим, адрес URL делится на несколько частей:

    Первая часть (http://) определяет используемый протокол. Проще говоря, она говорит о методе, который будет использоваться для получения доступа к нужному ресурсу.

    Используемый в данном URL протокол «HTTP» расшифровывается как «HyperText Transfer Protocol», и применяется он в абсолютном большинстве случаев. Но можно найти URL c использованием другие протоколов, к примеру, FTP (File Transfer Protocol – протокол для передачи файлов), HTTPS (HyperText Transfer Protocol Secure – безопасная, зашифрованная версия HTTP), mailto (адрес электронной почты) и другие.

    Всего же видов протоколов URL насчитывается несколько десятков ftp, http, rtmp, rtsp, https, gopher, mailto, news, nntp, smb, prospero, telnet, wais, xmpp, file, data и др, но используются обычно несколько основных, перечисленных мной чуть выше.

    Вторая часть (адрес_сайта ) – это имя домена. Технически это просто линия символов, букв или комбинация слов, позволяющая людям легко запоминать адрес любимой страницы. В ином случае ссылки на ресурсы выглядели бы как http://192.168.384..

    Третья часть (папка/страница.html) обычно указывает на какую-либо страницу ресурса, к которой пользователь хочет получить доступ. Она может быть просто в виде названия, или в виде пути к определённому файлу через набор папок, последние обычно разделяются слешом (/). Расширение интернет страниц может быть разным – php, htm, html, shtml, asp и ряд других.

    Визуально данные пояснения можно посмотреть на видео:

    Используемая перед названием домена аббревиатуры www (World Wide Web – всемирная паутина) не является обязательной, вы можете использовать адрес сайта и без неё, сайт обязательно откроется.

    Особенности использования URL адреса

    Если указанный пользователем URL не верен, то система покажем нам ошибку 404 с примечанием «Страница не найдена!». Значит, пользователь набрал или не правильный, или устаревший адрес страницы, потому при наборе адреса необходимы точность, аккуратность и внимание. Я бы рекомендовал при наборе URL использовать , скопировав адрес страницы через функции «копировать/вставить». Можно также попробовать набрать урезанный URL адрес в виде только основного имени сайта (без папок и страниц), а уже на главной странице сайта поискать переход на нужную нам страницу.

    Недостатки URL

    После описания, что это URL ссылка давайте разберём все недостатки УРЛ. Наряду с преимуществами, позволяющими легко вести навигацию в интернете, у URL есть свои недостатки. Это работа только цифрами, латинскими буквами и некоторыми символами, кириллица же обычно должна быть перекодирована (URL Encoding) в два этапа, на первом из которых каждый кириллический символ преобразовывается в два байта, а потом каждый из байтов переписывается с использованием шестнадцатеричной системы.

    Кроме того, в адресе рекомендуется использовать преимущественно маленькие буквы (некоторые Unix-системы их заглавные варианты будут воспринимать как разные символы, что может привести к ошибке открытия страницы), также в адресах URL запрещается использовать пробелы.

    Как найти URL адрес. Закладки.

    Для поиска требуемого URL адреса можно воспользоваться поисковыми системами, в которых необходимо прописать ключевые слова вашего поиска. К примеру, если нужен какой-либо фильм – тогда ввести его название, или имена актёров, если музыка – имена исполнителей и название композиции. Нажав «Поиск» вы получите множество сайтов с URL адресами, кликнув на которые вы можете найти нужный результат.

    URL страницы, на которой вы находитесь в данный момент, размещается в адресной строке вашего браузера, расположенной вверху.

    Для запоминания URL адреса нужной страницы используйте панель закладок вашего браузера. К примеру, в популярном браузере Mozilla Firefox иконка закладок в виде звёздочки расположена справа сверху на уровне адресной строки. Кликнув на неё, вы получите возможность набрать имя для вашей закладки, а также папку, куда складывать закладки (обычно я использую специальную панель закладок, позволяющая по одному клику получать доступ к любой из них).

    Заключение

    Использование URL здорово облегчило работу в сети Интернет, позволив множеству пользователей легко и быстро получать доступ к нужным сайтам. Если у вас остались вопросы после прочтений статьи “URL адрес что это такое” пишите их в комментариях к статье.

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

    Вконтакте