Если это HTTP, то даже если какое-либо другое клиентское приложение использует другую схему для подключения, вы все равно получите ее как HTTP на стороне сервера.
Фактически, в протоколе HTTP вы не получаете схему протокола в запросе. Вы получаете хост (имя хоста и порт) в Host heared и yu получаете путь (с строкой запроса, но без фрагмента) в GET lite запроса (или POST и т. Д.). Ни в коем случае клиент не посылает какие-либо указания о том, какой протокол он использует, если только это не запрос на прокси-сервер (но не обратный прокси).
Это ваш сервер, который предполагает, какая схема протокола используется, потому что он знает, с каким протоколом он говорит с данным портом. В случае, когда вы описываете клиента, который использует другое имя протокола в URL-адресе, но подключается к вашему серверу с помощью HTTP, ваш сервер должен знать HTTP, и маршруты обычно не включают протокол в любом случае, возможно, если это не диета .js, но даже тогда он используется в аргументе listen, а не в маршрутах.
Это запрос примера HTTP:
GET/HTTP/1.1
Host: localhost:3344
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,pl;q=0.6
Единственное место, где он имеет «HTTP» является первой линией, определяющей версию протокола, чтобы клиент мог понять заголовки должным образом, и это вы бы необходимо сохранить в любом случае, чтобы ваш сервер мог работать, если вы хотите использовать встроенный модуль http
или любую инфраструктуру в узле. Если вы изменили это, вам придется написать собственный синтаксический анализатор протокола.