Інструменти розробника · URL енкодер & декодер
Плюс верст %20: Історія застосування/x-www-form-urlencoded
· Підземелля
Опубліковано ToolAcre · Редакція журналу
виворітна обробка HTML-форми http-стандарти

Форми кодують простір як + при цьому URI стандарт говорить %20, і причина історична. Цей пост простежує конвенцію з початку HTML форми до сьогодні WHATWG визначення та пояснення того, що він ніколи не відійшов.
Плюс вершками %20—Деякі форми та URIs кодові місця, що відрізняються
HTML форми, що подаються GET кодування пробілів як і знаки в рядку запиту. При цьому простір стає %20 у URL-адресах RFC 3986. Як правильно, оскільки вони дотримуються різних стандартів. Форма поля, що містять пробіли, стають іменами: значення+з + просторами у вигляді кодування, але %20 в RFC 3986. Відмітки, що стандарт поширюється на ваші дані.
Форма кодування використовує плюс для просторів, як історичний конвенцію від RFC 1866 (1995), HTML 2.0- визначення оригінальної форми. GET запитує закодовані місця як і знаки, консервування плюс для літрової + закодовано як %2B. Це правило застосовується тільки до застосування/x-www-form-urlencoded, не загальний URI синтаксис. Залежним від цієї конвенції стала мільярди серверів. Тестування як показує чіткі відмінності: режим форми виробляє плюс; URI режим виробництва %20. URL енкодер і декодер пропонує як режими, щоб порівняти безпосередньо.
Рано HTML форми та GET уявлення — як було визначено кодування форми і чому + вибрано
RFC 1866 (1995) визначення подання форми, де пробіли стають плюсом і літровим плюсом стає %2B. Це наноситься тільки на додаток/x-www-form-urlencoded. RFC 3986 вказаний %20 для загального URI синтаксис. Двох стандартів, які збираються свідомо.
RFC 2396 чіткий характер встановлює більш суворо, ніж раніше стандарти. Зарезервований заповідник URI структура не закріплюється як літрові дані. Стандарти, які обумовлюють браузери та проксі-ведуча, оскільки він розвивається. RFC 3986 прийшла пізніше без зміни поведінки кодування, просто уточнення нотації. Всі поточні браузери стандартизують UTF-8 кодування. HTML форми через додаток для відправки кнопки/x-www-form-urlencoded формат з плюсом для пробілів. Магістр URI промисловість використовується %20. Розуміння обох стандартів запобігає інтеграції сюрпризів.
RFC 1866 і далі HTML технічні характеристики — де було написано правило і як його викопувати URI синтаксис
WHATWG URL Стандартні характеристики URLSearchParams.toString() виробляє додаток/x-www-form-urlencoded виводу з плюсом примітки для пробілів. URL конструктор відсотків-кодів RFC 3986. Перехід на браузер URL з кодами простору %20; форма подається як GET коди плюс. Ці основні інструменти забезпечують різні цілі. Ручний кодURIComponent дає %20 для просторівRFC 3986 стиль. Форми, що надходять на одну URL надіслати Сервери, що приводяться до подання анкети, очікують плюс; отримання %20 викликає безшумні порушення параметрів.
Тестування як показує витрати сервера, які ви залежать від. JavaScript URLПошукПараметри забезпечують безпечне кодування форми та складності. Конструктор URLПошукПараметри, записи додатків, виклик дляString() для отримання програми/x-www-form-urlencoded з правильним плюсом. Ви отримуєте альтернативні рядки запитів з кодомURIComponent RFC 3986 %20. Не змішувати підходи. Виготовлені рядки з ручним плюсом і кодуріком створюють неоднозначність. Отримувачі не можуть відрізняти, якщо плюс означає простір або літровий плюс. Стандартна ручка підходів послідовно.
Мистецтво URL Стандарт сьогодні — додаток/x-www-form-urlencoded як окремий послідовник з власними правилами
JSON APIs, як правило, відхиляється плюс як простір, expecting %20 за RFC 3986. Клієнти, які надсилають, не мовчуть: параметри ванілі. Тестування API з обох кодувань показує, які стандартні вони приймають. URLПошукПараметри в JavaScript ручка формувати кодування. URL енкодер & декодер RFC 3986 %20.
HTML автоматично ручить кодування. Ваш сервер в рамках вирішить, які правила застосовуються. Рейки, Д'янго, PHP всі дані, отримані автоматично. Але вручну будувати кварелі для тих же кінцевих точок, що мають величезну кількість. А плюс завантажений створює неоднозначність. Специфікація відповідності та поведінка сервера реального світу дещо дивує. Документ, який за стандартом очікування кінцевих точок. Тестування як стилі кодування. Захищаючи код ручки як граціозно.
Упорядкований приклад: поле однакової форми, що видно як рядок запиту та як орган запиту — з + в одному місці та %20 в іншому
JavaScript URLПошукПараметри застосовує форму-кодування: простір стає плюс, не %20. Нова URLПошукПараметри ({q: "hello world"}) виробляє "q=hello+world", не "q=hello%20world". Це історичне застосування/x-www-form-urlencoded правило, вбудоване в JavaScript .... Але проходячи цей рядок як сира запиту на новий URL зберігає плюс як плюс; тільки URLПошукПараметри розшифровує його як простір. Конструктор вірний тим, що він бачить. Плюс-значання різниці викликає загальні помилки при змішування функцій неправильно.
URL конструктор і кодURIComponent є різними інструментами. кодування все крім незбережених листів, ! ~ * ' ( ). Не містить контексту. URL будівельні парки фактичні URL і діє WHATWG правила для компонента. кодування "хелло"/world"велло"%2Fсвіт; новини URL бачить ущільнювачі як ступінчасті сепаратори. Введення полум'я, різний вихід. Використовуйте кодURIComponent при створенні URL-адрес за допомогою конкатенуючих елементів. Використовуйте URLПошукПараметри або URL конструктор для повноцінних або часткових URL-адрес.
Чому не можна виправити — десятки серверів і клієнтів, які залежать від поточного поведінки
Відсоткові правила, що використовуються RFC 1738 (1994) через RFC 2396 (1998) до RFC 3986 (2005... Кожне покоління кларатифікованих неоднорідностей. RFC 1738 було консервативним, лікуючи символи небезпечним, оскільки на початку веб-сайту було обмежене положення. Розгортання, стандартизовані на UTF-8, виконання стали послідовними. Надалі стандарти розслаблених обмежень щодо збереження символів у системі безпеки. Сучасні консенсусії: UTF-8 скрізь. Стандарти, які підтримують зворотну сумісність, швидко. У разі необхідності, якщо у вас виникли питання, то в будь-який час буде можливість поспілкуватися з іншими країнами. Двох стандартів коксист свідомо.
Тестування з плюсом і %20 виявлено припущення щодо використання сервера. Серверні журнали показують, що клієнти надсилають. Форми використання плюс; ручні URL-адреси використовують %20. Виберіть контекст і слідувати API документація.
Що це не криється — мультипарт/form-data і JSON обов'язки
Тестування як кодування показує поведінку сервера. Надішліть нам один одному варіант. Багато серверів у виробництві очікують кодування; нові API очікують %20. Ваш вибір залежить від очікувань ресивера. URLПошукПараметри ручок форм кодування; кодування кодування вмісту RFC кодування.
Не об'єднайте методи кодування. Значення, закодовано за допомогою кодуРіком %2B, потім передається в URLПошукПарами отримує подвійний кодований як %252B. Випадковий раз врожайності %2B замість плюсу. Символ стає літровим відсотків-два-шісточка, а не знаком плюса. Перевірити проміжні кроки в процесі будівництва. Замовляючи, що відбувається лише за значенням. Документ, який кодує стандарт, який використовує ваш трубопровод. Тест з особливими героями, включаючи плюс, простір, ампери.
Похід: два стандарти, як правильно в їх контексті — як правильно URL енкодер & декодер дає вам RFC 3986 форма, з %20 для просторів, тому ви знаєте, що ви шукаєте
Плюс-все-в-венті розщеплення не є помилкою для фіксації. Історичний артефакт, що розв’язує різні проблеми. Виправлення вимагає по всьому світу координації -можливе після тридцяти років. Стандарти не перерваються в Інтернеті. RFC 3986, правила форми, браузер URL будівництво кожного з них мають стандарти та причини. RFC 1866 кодування та RFC 3986 URI кодування слугують різними шарами. Увімкніть свідомо знаючи свій стандарт. Тест на реалістичні навантаження.
Виберіть кодування контекстом. Форми використання плюс за HTML стандарти. Інструкція URIs використання %20 за RFC 3986. API-файли вказують на те, що очікувати; слідувати за документами або тестувати як. URL енкодер & декодер показує RFC 3986. Потрібні кодування форми? URLПошукПараметри це робить. Інструмент не змішує кодування; точне розуміння нормативів запобігає сюрпризам. Захоплення невідповідності шарів викликає тонкі втрати параметрів, розкриття, запобігання даних. Обидва стандарти виправжуються в домені. Застосовувати свідомо і документ.