Почему в документации Twitter и Google API не кодируются амперсанды в URL? - PullRequest
14 голосов
/ 16 января 2012

Я прочитал Я должен закодировать свои амперсанды как & в HTML.
Однако многочисленные примеры кода от уважаемых компаний как-то забывают сделать это .

Всего несколько примеров с моей головы:

Google Web Fonts пример кода:

<link href='http://fonts.googleapis.com/css?family=PT+Sans&subset=latin,cyrillic' rel='stylesheet' type='text/css'>

Карты Google Документация:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=ja">

Twitter Anywhere официальный учебник:

<script src="http://platform.twitter.com/anywhere.js?id=YOUR_API_KEY&v=1" type="text/javascript"></script>

Есть ли реальная выгода от , а не экранирования от амперсанда в ссылках?
Это связано с особенностями браузера? Это просто ошибка в документации?

Уважаемые ответы, пожалуйста, убедитесь, что вы отвечаете на правильный вопрос.

Я знаю, что должен экранировать амперсанды по спецификации. Я также знаю , почему механизм был изобретен в первую очередь. Я не спрашиваю об этом . Мой вопрос:

Существует ли причина, по которой документация API уважаемыми компаниями часто нарушает это правило?

Ответы [ 2 ]

5 голосов
/ 16 января 2012

Два разных контекста здесь.

  1. В контексте javascript href символ & отлично подходит и не должен кодироваться.
  2. В HTML-ссылке знак & запрещен и должен быть экранирован.

В контексте ссылки HTML символьная сущность HTML будет декодирована до того, как адрес будет передан процессу HTTP; URL-кодированный символ не будет, так как сервер может прочитать его напрямую.

4 голосов
/ 16 января 2012

Есть ли реальная выгода от того, что вы не можете избежать амперсанда в ссылках?

Это экономит несколько нажатий клавиш.

Это связано с особенностями браузера?

нет

Нет

Это просто ошибка в документации?

Да

Существует ли причина, по которой документация API уважаемыми компаниями часто нарушает это правило?

Невежество и / или лень. Браузеры выполняют восстановление после ошибок, поэтому либо не замечают ошибок, либо им все равно. Документация, вероятно, не написана их лучшими экспертами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...