in theory, ids are supposed to be opaque. in practice, they aren't. at best, you can say that the identity function uses exact matching, and that is opaque. but despite guidance to not extract information from ids, you actually have to extract some prefix-based information. take https: for example, which decomposes like so:
- scheme (https)
- host (dns name or ip address, plus some port)
- resource name (/foo?bar)
- fragment (#)
this is clearly not opaque, because we've just extracted 4 facts.