diff --git a/websocket-sharp/HttpRequest.cs b/websocket-sharp/HttpRequest.cs index 41f700e2..cfced5c8 100644 --- a/websocket-sharp/HttpRequest.cs +++ b/websocket-sharp/HttpRequest.cs @@ -133,7 +133,12 @@ namespace WebSocketSharp var headers = req.Headers; headers["Upgrade"] = "websocket"; headers["Connection"] = "Upgrade"; - headers["Host"] = uri.Port == 80 ? uri.DnsSafeHost : uri.Authority; + var port = uri.Port; + var scheme = uri.Scheme; + bool isDefaultPort = (port == 80 && scheme == "ws") || (port == 443 && scheme == "wss"); + // only include port in host header if it is non-default + // https://tools.ietf.org/html/rfc6455#page-17 + headers["Host"] = isDefaultPort ? uri.DnsSafeHost : uri.Authority; return req; }