Інструменти розробника · URL енкодер & декодер
Що таке URL Конструктор кодів для вас: набори процентів браузера
· Як працює
Опубліковано ToolAcre · Редакція журналу
виворітна обробка Завантажити плагін Що Веб-сайт

Про нас URL API Німецько-процентні коди деяких символів і листя інших, в залежності від яких частинах URL вони землі. Цей пост пояснює WHATWG закодувати набори і як прогнозувати вихід.
Простір, що набув %20 і решта, що залишилася — бетонний корпус, де новий URL() частково закодовано шлях
Колись URL("https://example.com/hello світ") ходи, простір стає %20 безшумно. Але нові URL("https://example.com/hello|world") залишає трубу передпліччя. Ця різниця не випадкова. Мистецтво WHATWG URL Стандарт визначає окремі набори символів для кодування кожного URL компонент: шлях, біржа, фрагмент, а також користувацький Розуміння цих наборів означає прогнозування того, що конструктор буде робити.
Простір вимагає від відсотків-покриття, оскільки це небезпечно HTTP і розриває читабельність. Труба відрізняється: не замкнений характер, який розбиває структуру, тому браузер залишає його самостійно. Лінія між безпекою та читабельністю WHATWG, не вгадувати Тестування "Hello world" показує кодування; тестування "Hello Adworld" розкриває межі для кожного URL частина.
Молода URL, кілька наборів кодування — шлях, запит, фрагмент та користувацький контент, у кожному з них є власний список символів, які можна уникнути
Молода URL містить декілька регіонів, кожен з власних правил кодування. Шлях слідувати один набір, переробити інший, фрагментувати третій, користувацький Простір стає %20 в доріжці і кварці. При цьому, в межах якого є ключі та значення, але кодування компонента переходить до %3D. Мистецтво URL конструктор знає контекст і застосовує правильну правила для кожної частини.
Набори кодів є точними та невеликими. У статті є список власних символів, у кверію є аналогічний, але інший список. Це відображає, які символи мають структурний зміст. Пересилка розбиває сегменти шляху, тому кодуванняURIComponent зашифровує його як %2F. У фрагменті пересувний шов може існувати без розбиття нічого. Розуміння WHATWG правила означає прогнозування виходу без коду запуску.
Чому зараз є одним із способів: що залишається зашифровано, що це означає, що
Мистецтво URL конструктор виконує одностороннє нормалізацію. Пас "%20"до нового" URL і це виробляє %20 без змін. Конструктор визнає його як вже зашифровано, і залишає його самостійно. Саме тому подвійні кодування: кодування один раз, проходячи через конструктор, а також кодування паличок. Конструктор не розшифровує, перезавантажує та перекодує; він читає переадресацію.
Цей односторонній власності впливає на довіру додатків URL.href як канонічний. Якщо ви замовляєте вхід користувача з вашим шляхом, вхід отримує нормалізований, але не декодується. Вартість, як «my+file» залишається як, так і стає «my%2Bfile» в деяких контекстах. Після цього код за допомогою декодурі компонента може прочитати плюс як простір, якщо з даних форми. Конструктор нормалізує один раз; після цього, ваше значення фіксується.
Успішний приклад: проходячи однакові брудні рядки через новий URL() і читання href, pathname і searchParams — три різні види
Візьміть "hello world&foo=bar Edit #anchor" і поставте його через новий URL з різними компонентами. Простір стає %20 скрізь. Амперсенд в шляху залишається (не структурний зміст там), але в запиту він залишається занадто (розділяє параметри, тому нормалізацію втратить межі між "q=" і "foo=bar"). Труба і хеш подаються по-різному.
Читання href, pathname та searchParams показує три різні види. Прізвище показує зашифрований шлях без схеми, хосту, або запиту. пошукПараметри дає декодовані параметри, тому "hello +world" з даних форми стає просторим. Збереження лінійного рядка пошукової нерухомості. href показує повну нормалізацію URL. Ці співіснуючі на одному об'єкті; які використовують залежно від вашого наступного кроку.
URLПошукПараметри і правила формування — чому вона виробляє + для пробілів при дотриманні назви продукції %20
URLПошукПараметри застосовує форму-кодування: простір стає плюс, не %20. Нова URLПошукПараметри ({q: "hello world"}) виробляє "q=hello+world", не "q=hello%20world". Це історичне застосування/x-www-form-urlencoded правило. Але якщо ви передаєте цей рядок як сира запиту на новий URL, плюс залишається плюс; тільки URLПошукПараметри розшифровуються його як простір. Конструктор вірний тим, що він бачить.
Це плюс-значання різниці викликає загальні помилки. А.А URL від адресного бруса використовується %20 для пробілів. Форма даних використовує плюс. Якщо ви декодуєте декодуріком (які читається і буквально) замість URLSearchParams.get, пробіли стають плюс символи. Мистецтво URL енкодер і декодер показує як: паста "hello +world" і порівняння режимів компонентів і форми, щоб побачити, де з'являється простір.
Порівняти з кодурою — де два згодні і де вони дивляться
Про нас URL конструктор і кодURIComponent є різними інструментами. кодування все крім незбережених листів, ! ~ * ' ( ). Не містить контексту. Про нас URL будівельник обробляє реальний URL і діє WHATWG правила для компонента. кодування "хелло"/world"велло"%2Fсвіт; новини URL бачить ущільнювачі як ступінчасті сепаратори. Введення полум'я, різний вихід.
Використовуйте кодURIComponent при створенні URL за допомогою конкатенуючих деталей. Використовуйте URLПошукПараметри або URL конструктор для повного або часткового URL-адрес. Не використовуйте кодування компонентів на всій території URL; ви будете заплутати схему. Порівняти результат з непристойним. Застосунки для браузера URL думки структури, і нові URL впроваджує їх. Мистецтво URL encoder & decoder показує як вид на сторону.
Що це не криється — хост-пам'ятка, IDNA і спеціальні проти нестандартні схеми
Мистецтво WHATWG URL Стандарт - джерело правди, хоча читання вимагає терпіння. У фрагментах алгоритму визначено зашифровані набори, не списки. У практиці розуміння принципу, що стосується більш ніж мемозійних наборів. Патріарха дозволяє більшим користувачам (розклади є структурними); запит має свої правила; фрагмент має декілька обмежень (нав'язаний клієнт-за межами, ніколи не відправлений на серверах). Кожен компонент має свої правила, знаючи це говорить вам, де шукати.
Нормалізація та перевірка є різними кордонами. Конструктор нормалізує: очищає від відсотків-покриття, застосовує правила компонентів, надає канонічну форму. Не вдається: недійсні символи кидають, але приймаються порожні хости. Конструктор суворий про формат, але lenient про інтерпретацію. Для точного дотримання специфікацій, читайте WHATWG's відсотків-encoded байтів секція. Для щоденного будівництва скористайтеся URLПошукПараметри URL API, і реальні приклади.
Похід: парсер має думки — як виглядає URL енкодер і декодер показує вам простий відсоток-відхилення від вартості або адреси, щоб ви могли порівняти його з тим, що браузер виробляється
Непідтримувані WHATWG особливості тут включають в себе хост-парсінг з IDNA перетворення (міжнародні доменні імена в ASCII) і спеціальна неспеціальна схема обробки. Файл: URL-адреси використовують подвійний в'язкість; дані: URL-адреси не повинні. Конструктор зобов'язується дотримуватися цих правил. Перетворення імен та визначення спеціального статусу належить до вимог, що випробують, не відсотків-кодування. Це питання при створенні URL-адрес по різних схемах.
Тестувати URL побудова шляхом порівняння інтерпретації браузера з очікуваннями. Побудувати нові URL, читати властивості, які мають значення: href для повної форми, шляховий ім'я для шляху, пошук сировини, пошукПарам для декодування. Якщо ви ви не здивуєте, вставте в URL енкодер і декодер і слідувати за кроком трансформації. Інструмент показує нормалізовану вихід з сирого кодування, розкриваючи різницю. Розуміння WHATWG налаштовує на вибір веб-переглядача та як їх працювати.