Точка с запятой в качестве разделителя URL-запросов

Хотя это настоятельно рекомендуется ( Источник W3C через Википедию ) для веб-серверов, поддерживающих точку с запятой в качестве разделителя элементов URL-запросов (в дополнение к амперсанду), это, как правило, не соблюдается.

Например, сравните

http://www.google.com/search?q=nemo & oe = utf-8

http://www.google.com/search?q=nemo ; ае = UTF-8

результаты. (В последнем случае точка с запятой, или была на момент написания этого текста , рассматривалась как обычный символ строки, как если бы URL был: http://www.google. com / search? q = nemo % 3B oe = utf-8 )

Хотя первая библиотека для разбора URL-адресов, которую я пробовал, ведет себя хорошо:

>>> from urlparse import urlparse, query_qs
>>> url = 'http://www.google.com/search?q=nemo;oe=utf-8'
>>> parse_qs(urlparse(url).query)
{'q': ['nemo'], 'oe': ['utf-8']}

Каков текущий статус принятия точки с запятой в качестве разделителя, и каковы потенциальные проблемы или некоторые интересные заметки? (как с точки зрения сервера, так и с точки зрения клиента)

51
задан VxJasonxV 6 February 2019 в 00:45
поделиться

1 ответ

Пока ваш HTTP-сервер и ваше серверное приложение принимают точки с запятой в качестве разделителей, все в порядке. Недостатков не вижу. Как вы сказали, спецификация W3C на вашей стороне :

Мы рекомендуем, чтобы разработчики HTTP-сервера, и в частности разработчики CGI, поддерживали использование ";" вместо «&», чтобы избавить авторов от необходимости экранировать символы «&» таким образом.

17
ответ дан 7 November 2019 в 10:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: