Українська

Інструменти розробника · URL енкодер & декодер

RFC 3986 Зарезервовані і незбережені символи: що таке URI стандарт каже

· Підземелля

Опубліковано ToolAcre · Редакція журналу

виворітна обробка рф3986 відсотків-пригоди

URI Зарезервовані набори, зарезервовані набори
Головна ToolAcre векторна ілюстрація

RFC 3986 Розділяє символи на зарезервовані, незбережені і все інше, і що розщеплення пояснюється кожним %-відновленим правилом, ви зустрілися. Цей пост читає відповідні розділи.

RFC 3986 зарезервовані і незбережені символи -що стосується, коли ви будуєте URL-адреси

RFC 3986 розділяє символи на три категорії: незбережені, зарезервовані, і все інше, що необхідно закодувати. Незабезпечені символи ніколи не потребують кодування - це листи, цифри, фен, період, андерсон, і т.д. Мистецтво RFC список цих явно в розділі 2.3, що вони безпечні для некодування в будь-якому випадку URI контекст. Тестування в URL кодування і декодування з цими героями показує, що вони проходять через незмінний. Заповідні символи, що піддихають в ген-делімс (: / ? # [ ] @) і суб-делімс (! $ & ' ( ) * + , ; =), кожен з структурним значенням в різних умовах URL компоненти.

Коли потрібен символ? Зашифровані символи повинні бути відсотково зашифровані тільки де вони створюють неоднозначність. Відрізки шляху зітків, у вартість запиту, вона повинна бути %2F. Ампанд відокремлює параметри; і в значення вимагає %26. Незабезпечені символи ніколи не потребують кодування - гіфен залишається гіфеном. Мистецтво URL стандарт забезпечує правильне оформлення пар. Тестування з URL encoder & decoder: в'їзд "hello/world"з кодуріоном" виробляє "хелло%2Fсвіт"; з кодурою зберігає сіточку.

Незабезпечені: листи, цифри, фен, період, underscore і tilde — символи, які ніколи не потребують кодування і ніколи не повинні бути закодовані

Прихильники за допомогою %H, де HH є шістнадцятковим позначенням. ASCII лист А (код 65) на %41. Не-ASCII é вимагає UTF-8 кодування: é (U+00E9) стає %C3%A9. Сучасні стандарти уточнюють UTF-8 уніформа по браузерам.

У комплекті URL-адреси необхідно структурний синтаксис, значення запиту, необхідні внутрішні замкнені символи, нешкідливі. Параметри запиту ?q=R&D повинні зашифрувати та як %26 якщо ручний, інакше амперс і стає сепаратором. Значення з висушками наперед %2F в режимі компонента. Кодування компонентів (encodeURIComponent) ручить це за допомогою кодування всіх, крім не збережених літер, цифр і - . ! ~ * " ( ). Тестування показує різницю між методами.

Заповідний: ген-делім і субделімс — дві групи, їх члени та їх структурні ролі

Вишукані рядки демонструють, чому зарезервовані символи. Амперсанд відокремлює ключ=значення пар: ?utm_sourceелектронний листutm_campaign= продаж за допомогою двох параметрів. Всередині значення, нерозпаковані ампери і закінчується парою. Еквалізує ключі від значень. У деяких шарах, кожен застосовує однакові правила.

Символи, які вимагають кодування в значеннях запиту включають амперанди, рівні, хеш, знак питання, пробіли і не-ASCII листи. Hash є sneakiest: #з'єднання стає фрагментом ідентифікатора, ніколи не відправлений на сервер. Назви кампанії, що закінчуються хешем, втрачають все після того, як він перед запитом, листує браузер. Простір повинен стати %20Тестування з URL кодування та декодування показує компоненти та режими форми. Розуміння позиції визначає необхідність кодування.

При замкнених символи необхідно закодувати — тільки де вони будуть помилкові для глухих, компонента компонента компонента

Персентно-пригодні персистентні псистки в RFC 3986. Незареєстрований набір залишається невеликим забезпеченням портабельності. Незбережені символи можуть декодувати без змін значення. Випадок %41 до A виправити, тому що A не законсервований. Декодування %2F до / зміни значення при зіткненні даних, не сепаратор. RFC 3986 секція нормалізації 6 охоплює синтактичні підходи.

Заслужені символи в різних позиціях мають різні ролі. Колонка в схемі позначки:облігація авторських прав; колонка в користувацькому Опитування відкриє розділ запиту; вставку в значення запиту є літровим. Починаємо фрагмент. Посада визначає кодування. Виготовлені рядки виконують значення, які самі самі URIs. Конкодування перенаправлення URL , як https://example.com/page?param=value як параметр вимагає кодування вій і колонок до %2F й %3А. Контекст визначає безпечні символи.

Створений приклад: класифікація кожного персонажа реальної URL заброньовані дані

RFC 1738 (1994) вважається безліч символів небезпечних. Як розгортається стандартизовано на UTF-8, пізніше стандарти розслаблених обмежень. Еволюція Tilde (~) запроваджує: RFC 1738 обов'язкові %7E, RFC 2396 (1998) перемістили хорд до незбережених, RFC 3986 підтверджено незбережений статус. Evolution відображає уроки розгортання. Стандарти зберігають зворотну сумісність.

RFC нормалізацію дозволяє зашифрувати ненадійні дані проценти, що не зберігаються. %41 зручно нормалізувати A. Зашифровані символи, такі як %2F не декодувати; зміна структури значень. Модерн-консенсум RFC 3986 як посилання базової лінії. URL енкодер & декодер RFC 3986 по всій території, що пропонує фіксовану посилання на окрему від поведінки браузера. WHATWG URL Стандарт додає комплекти кодування компонентів за межами RFC. Стандарти коксист: RFC 3986 для загального URL труси, WHATWG для веб-переглядачів. Визначні матеріали, що відповідають вимогам законодавства про охорону праці.

Нормалізація настанови в розділі 6 — шістнадцяткова справа, незбережена декодування та правила сегмента шляху

Тестування RFC 3986 забезпечує роботу URL-адрес на основі програмного забезпечення протягом десятиліть. URL енкодер & декодер RFC 3986 кодування базової лінії наносити на компоненти, побудовані. Читання стандартної документації, що пояснює кожен прийняття кодування в URL бібліотеки. WHATWG URL будівельні споруди RFC 3986 не замінюючи його повністю. Створення URL-адрес для загального браузера? Про нас RFC 3986; браузери WHATWG правила зверху. Старші системи? Тестування фактичних імплементацій. Нормалізація для зберігання? Застосувати RFC 3986 послідовно. Розуміння/unreserved ви можете знайти зручний для вас час.

URL кодування не є санітацією безпеки. Кожен контекстSQL, HTML, JavaScript, URI— за допомогою власної кодування виведення. Зміцнююча обробка URL структура тільки. Наносити праву захист на правому шарі.

Що це не криється — WHATWG URL Різні комплекти кодування та стандартні IRI зручність

RFC 2396 (1998) чіткий характер встановлює більш суворо, ніж RFC 1738. Упорядкований замкнений символ URI структура та незбережені як літрові дані. Незабезпечені розширені, включаючи гіфен, період, андерсон, нахил за оригінальними визначеннями. RFC 2396 введений відрізок ген-делімів (:, /, ?, #, [, ], @) і суб-delims (!, $, &, ", (, ), *, +, , , ;, =). Кожна група має різні структурні ролі у URL. Наміння чіткі замкнені символи діляться на дві групи. Знаючи імена допомагає технічним обговоренням.

RFC 3986 (2005) є сучасним посиланням. Зареєструватися/unreserved розмежування, але спрощена відмова. Стандарти не перерваються в Інтернеті. Увімкніть свідомо знаючи свій стандарт. URL енкодер & декодер RFC 3986 посилання.

Висновок: стандарт короткий і точний — як працює URL два режими кодування даних, що зберігаються дельімтери

Вибір стандартів залежить від контексту. Створення URL-адрес для загального браузера? Про нас RFC 3986; браузери WHATWG правила. Старші системи? Тестування фактичних імплементацій. Нормалізація для зберігання? Застосувати RFC 3986 послідовно. З консервативних умов, що виникають внаслідок RFC 1738 через кларатифікований RFC 2396 і RFC 3986 до шарування WHATWG URL Стандарт. Кожен покоління відобразив досвід. Сучасні будівельники RFC 3986 або WHATWG контекстно. Старі та нові URL-адреси, які вимагають мислення сумісності. Розуміння категорій запобігає похибкам коду.

Перевірити URL-адреси, які закодовані належним чином перед розгортанням. URL енкодер і декодер демонструє RFC 3986 правила до закінчення. Дивитися точні значення шістнадцятого і зрозуміти, які символи кодують. Використовуйте цей інструмент при створенні URL-адрес за допомогою конкатенуючих елементів. RFC 3986 зарезервовані та незбережені категорії розділи символів для послідовних URI труси.