I gave this a try and it works, both with an initial http-in/-out pair as well as uibuilder URLs. (I don't use Dashboard.) With the above param set as described and a non-matching URL is requested, NodeRED/ExpressJS responds with "Cannot GET /myNonMatchingCase
", which is the behaviour I was initially expecting/hoping for.
So I guess the issue can be described as two different things:
- ExpressJS default values do not following the SHOULD recommendation of the W3C. Given that case-sensitivity is not a MUST, we probably can't technically call it a bug. However, there is already a parameter available to change this behaviour. I agree that this departure from the recommended behaviour should at least be documented somewhere in NodeRED, with the step needed to make it conform to the SHOULD behaviour.
- SocketIO does not tolerate non-matching case when ExpressJS is configured for case-insensitivity. Given the SHOULD re case sensitivity, SocketIO not obliged to handle the non-matching case.
Thank you for your quick investigation, pointing me to a workable solution, and raising the core issue with the NodeRED team.
Annuello.