Только некоторые протоколы, такие как http://
и https://
, будут отправлены на ваш http-сервер nodejs. Это проблема. Ваш сервер node.js является http-сервером. Браузер Chrome отправляет ему URL-адреса только с протоколом http, который, как он знает, относится к серверу http.
Пользовательский протокол должен сначала обрабатываться в браузере с помощью надстройки браузера, которая затем может решать, что с ним делать.
Возможно, вы хотите использовать собственный URL-адрес HTTP, например:
http://yourserver.com/foo/bar
Затем ваш http-сервер node.js получит часть запроса /foo/bar
, и вы можете написать собственные обработчики для этого.
Напомним, что первая часть URL-адреса, предшествующая ://
, является протоколом. Это говорит браузеру, с каким протоколом этот URL предполагается использовать. Без надстройки браузера браузер поставляется только с поддержкой некоторых встроенных протоколов, таких как http
, https
, ws
, wss
, mailto
и некоторых других.
Сервер http сможет отвечать только на протокол http, поэтому он будет работать только с URL-адресами, которые ожидают использовать протокол http и которые, как известно, браузер, используют протокол http. Таким образом, ваш собственный протокол, о котором браузер не знает, - это не то, с чем браузер знает, что делать. Требуется надстройка браузера, чтобы сообщить браузеру, что делать с пользовательским URL.
Когда я пытаюсь использовать этот тип URL-адреса, создается впечатление, что Chrome завершает работу, прежде чем он сможет добраться до моего HTTP-сервера в Node.
Да, это не узнаваемый протокол, встроенный в браузер, поэтому браузер не знает, что с ним делать и как произносить этот протокол.
Можно ли привязать ваш HTTP-сервер к пользовательской схеме URL, как это?
Только с надстройкой браузера, которая регистрирует и реализует поддержку пользовательского протокола URL.