Запустите приложение колбу в отдельной теме

Рассмотрите объявление соответствующего path-absolute нетерминала в «RFC3986: Единый идентификатор ресурса (URI): общий синтаксис« (указанный, как обычно, в синтаксисе ABNF :

path-absolute = "/" [ segment-nz *( "/" segment ) ]

Затем рассмотрите декларацию segment несколько строк дальше в том же документе:

segment       = *pchar

Если вы можете читать ABNF, звездочка (*) указывает, что следующий элемент pchar может повторяться несколько раз, чтобы создать segment, включая нулевое время . Изучив это и перечитав декларацию path-absolute выше, вы увидите, что потенциально пустой segment показывает, что второй "/" может повторять неопределенно , следовательно, допустимые комбинации, такие как ////// ( произвольная длина по крайней мере одного /) как часть path-absolute (которая сама используется при указании правила, описывающего URI).

Поскольку все URL-адреса являются URI, мы можем заключить, что да, URL-адреса разрешено несколько последовательных косых черт в соответствии с цитируемым RFC.

Но это не похоже на то, что каждый следует или реализует парсеры URI для каждой спецификации, поэтому я уверен, что существуют несовместимые анализаторы URI / URL и все виды программного обеспечения, которые стеки поверх них, где такие угловые случаи ломают большие системы.

36
задан Phillip 10 January 2018 в 16:31
поделиться