2017-02-16 27 views
4

Я понимаю, что в прошлом стандартным для пользовательских заголовков было использование префикса «X-» (я знаю, что он больше не считается стандартным для этого), но мне не удалось найти, любая связь между этим соглашением об именах и значением («application/x-www-form-urlencoded»). Началось ли это как пользовательское значение типа контента, которое позднее было принято или что-то еще?Почему «x-www-form-urlencoded» начинается с «x-www», когда других стандартных типов контента нет?

Я нашел this ссылку здесь, что, безусловно, было интересно, но не удалось найти ответ на мой вопрос.

Кто-нибудь знает причину, по которой этот префикс был выбран, и что это означает?

+0

Спасибо за ссылку, кстати. По сей день я думал, что RFC 1521 был самым старым упоминанием x-префикса :) – DaSourcerer

ответ

3

это стандарт для имен пользовательских заголовков использовать префикс «X-»

На самом деле ... нет, не на всех. Если быть точным: он никогда не был стандартом, а только лучшей практикой. Это позволило разработчикам вводить новые типы контента и кодировки без необходимости писать для него весь RFC. В настоящее время IANA Media Type Registry хорош для этого. RFC 6648 положил конец этой практике.

Причиной application/x-www-form-urlencoded является префикс таким образом (он указан как соответствующий тип MIME в указанном реестре, кстати)) проистекает из того факта, что он является «обычным» методом структурирования строки запроса в URL-адресе. Эта часть имеет never seen proper regulation. Люди, стоящие за HTML, просто пошли и сделали это, что полностью оправдывало префикс.

2

Что касается истории, я думаю, что это имеет префикс x-, потому что она возникла в a proposal from Mosaic й, так как это было только предложение, они использовали этот префикс x- расширения сначала определить его. Но тогда и другие браузеры тоже реализовали это, и никто никогда не успевал занять время, чтобы правильно стандартизировать альтернативу без префикса, поэтому она просто застряла в этом направлении, и теперь они были.

Это можно проследить до 1993 резьбе на список рассылки WWW-ток под названием «Передача входных данных формы на сервер», и в этом потоке, a September 1993 message from Marc Andreessen:

Это то, что мы делать в Mosaic 2.0 ... Смотрите

http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/fill-out-forms/overview.html

... подробности о том, что мы до

Эта ссылка сейчас не работает, но документ под названием «Мозаика для поддержки версии версии 2.0 для версии X версии 2.0» - archived at archive.org. Вот соответствующий отрывок:

ENCTYPE указывает кодировку для содержимого формы заполнения. Этот атрибут применяется только в том случае, если METHOD установлен в POST - и даже тогда есть только одно возможное значение (по умолчанию, application/x-www-form-urlencoded).

Во всяком случае, application/x-www-form-urlencodedis now formally defined in the current URL spec, алгоритмы для анализа и сериализации, хотя раздел все это определенно в имеет это примечание:

Формат application/x-www-form-urlencoded является во многих отношениях аберрантного уродством, результат многолетняя реализация аварий и компромиссов, которые приводят к набору требований, необходимых для взаимодействия, но никоим образом не представляют хороших методов проектирования. В частности, читателям предостерегают уделять пристальное внимание скрученным деталям, связанным с повторными (и в некоторых случаях вложенными) преобразованиями между кодировками символов и последовательностями байтов. К сожалению, формат широко используется из-за распространенности HTML-форм.

+0

«Приложение/x-www-form-urlencoded» теперь формально определено в текущей спецификации URL «Не совсем. То, что вы цитируете, - это живой стандарт, ищущий устаревшего RFC 3986 (спецификация * текущего * URL) и RFC 3987 один день. Это скорее проект, чем реальная спецификация. Для части синтаксического анализа/сериализации я хотел бы обратиться к [этому разделу] (https://www.w3.org/TR/html5/forms.html#url-encoded-form-data) рекомендации W3C HTML5. О, и спасибо за историческую заметку о Мозаике. Это, конечно, было интересно читать :) – DaSourcerer