Ты прав.
Внутри документа HTML символ амперсанда (&
) не допускается, за исключением случаев указания прав (например, &
).
Следовательно, такой код, как <a href='mycgi?foo=1&bar=2'>
, является недействительным HTML. Он должен выдать ошибку, если вы запустите его через валидатор.
Большинство (всех?) Браузеров справятся с этим без ошибок. Здесь нет никакой двусмысленности, так что это сработает.
Тем не менее, все равно хорошей идеей будет преобразовать их в сущности, потому что всегда существует вероятность появления неоднозначности - например, если в вашем URL есть параметр с именем amp
вместо bar
как браузер справится с этим? Это не совсем ясно. Поэтому вам следует преобразовать их все в сущности, чтобы избежать каких-либо проблем в будущем, даже если у вас их нет сейчас.