如何从 Node.js 中的 Http.IncomingMessage 检测 http 与 https

2024-05-14

给定一个Http.IncomingMessage由一个创建http(s).Server为了响应请求,检测请求是否是 http 与 https 的正确/推荐方法是什么?

一些我不知道的随机想法是否正确

  • 检查端口

    // seems wrong - might be using a different port
    const isHTTPS = req.socket.address().port === 443;
    
  • 检查套接字是否有证书

    // does no cert mean it wasn't https?
    const isHTTPS = req.socket.getPeerCertificate &&
         request.socket.getPeerCertificate() !== null;
    
  • 检查socket是否有该功能getPeerCertificate

    // does no func = !https?
    const isHTTPS = req.socket.getPeerCertificate !== undefined;
    
  • 检查套接字是否是tls.TLSSocket

    const tls = require('tls');
    
    const isHTTPS = req.socket instanceof tls.TLSSocket;
    
  • other?


req.socket将有一个名为encrypted https://nodejs.org/api/tls.html#tls_tlssocket_encrypted set to true用于 HTTPS 连接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Node.js 中的 Http.IncomingMessage 检测 http 与 https 的相关文章

随机推荐

  • 用于请求带有临时缓存的远程 Observable 的 RxJava 模式

    用例是这样的 我想暂时缓存最新发出的昂贵的Observable响应 但在它过期后 返回到昂贵的源Observable并再次缓存它 等等 一个非常基本的网络缓存场景 但我真的很难让它工作 private Observable
  • 为什么具有相同名称但不同签名的多个继承函数不会被视为重载函数?

    以下代码片段在编译期间产生 对 foo 的调用不明确 错误 我想知道是否有任何方法可以解决此问题而不完全限定对 foo 的调用 include
  • 无法在 GCP Cloud Scheduler 上创建作业

    当我尝试在 GCP Cloud Scheduler 中创建作业时 出现以下错误 error code 7 message 主体 用户或服务帐户 缺少资源 我的服务帐户 的 IAM 权限 iam serviceAccounts actAs 或
  • CSS 动画自定义属性/变量

    一段时间以来我一直在努力让它发挥作用 关键是内部 div 将具有某种形状 并且可能会不止一个 这就是为什么我使用nth child选择器 这个内部 div 应该显示然后再次隐藏一段时间 问题是 我想在一个动画中为所有 后来的 多个内部 di
  • Spring Data Rest 多对多 POST

    首先 让我解释一下我的用例 这非常简单 有一个用户实体和一个服务实体 我使用 UserService 作为连接实体 连接表 在用户和服务之间建立多对多关联最初 会有一些用户集和一些服务集 用户可以在任何时间点订阅任何服务 在这种情况下 将向
  • 是否有关于 EML 文件格式的 RFC?

    基本上 我正在尝试使用 EML 文件 我想知道这些文件在不同的电子邮件服务器上是否相当标准 基本上 EML 文件上是否有一个 RFC 就像电子邮件地址和其他主题的 RFC 一样 我想我可以更具体一点 以便更好地了解我需要什么 我正在扫描 E
  • 默认析构函数做了多少事情

    C 类中的默认析构函数是否会自动删除代码中未显式分配的成员 例如 class C public C int arr 100 int main void C myC new C delete myC return 0 删除 myC 会自动释放
  • 在 Clojure 和其他 Lisp 方言中,在函数名称末尾使用星号的约定是什么?

    请注意 我不是在谈论符号名称中的耳罩 这个问题在Clojure 常量的约定 样式和用法 https stackoverflow com questions 3579063 conventions style and usage for cl
  • 分配器感知容器和propagate_on_container_swap

    The std allocator traits模板定义了一些常量 例如propagate on container copy move assign让其他容器知道它们是否应该在复制或移动操作期间复制第二个容器的分配器 我们还有propag
  • Shiny可以识别用鼠标选择的文本(突出显示的文本)吗?

    我需要用户将文本片段分配给 Shiny 中的类别或 代码 基本上 我希望用户突出显示输出中的文本 在下面的示例中 来自table or text输出 然后按一个按钮 code 并将选定的文本分配给应用程序内的对象 在下面的应用程序中 所选文
  • C++11 动态线程池

    最近 我一直在尝试寻找一个用于线程并发任务的库 理想情况下 是一个在线程上调用函数的简单接口 任何时候都有 n 个线程 有些线程比其他线程完成得更快 并且到达的时间不同 首先我尝试了 Rx 它在 C 中非常棒 我还研究了 Blocks 和
  • Php 转换 GMT 格式的时间

    我有这个字符串2012 06 27 16 17 06我想将其转换为 GMT 格式 我怎样才能做到这一点 多谢 Use gmdate http php net manual en function gmdate php 使用以下命令将当前日期
  • 如何设置仅适用于 iPhone 或 iPad 的视口?

    我有一个网站 需要在 iphone 上使用 0 3 的视口值 但在 ipad 上使用 0 7 有没有办法只为 iPhone 或 iPad 设置视口 这是一种解决方案
  • 模拟节点外部模块默认使用 jest 的链式方法

    在我们的节点 CLI 中 我们有一个简单的方法 use strict const ora require ora module exports function startSpinner textOnStart color spinnerT
  • 媒体查询:如何定位桌面、平板电脑和移动设备?

    我一直在对媒体查询进行一些研究 但我仍然不太明白如何定位特定大小的设备 我希望能够针对台式机 平板电脑和移动设备 我知道会存在一些差异 但如果有一个可用于针对这些设备的通用系统 那就太好了 我发现的一些例子 Mobile only scre
  • 返回年份数组作为年份范围

    我正在尝试查询一个包含以下内容的表character varying 年份列 并将这些年份作为逗号分隔的年份范围字符串返回 年份范围将由数组中存在的连续年份确定 不连续的年份 年份范围应以逗号分隔 数据类型的原因是character var
  • 如何使用 Jquery .animate() 函数创建连续滚动内容? [复制]

    这个问题在这里已经有答案了 可能的重复 在jquery中实现圆形滚动条 https stackoverflow com questions 812049 implementing circular scroller in jquery 我想
  • XML 配置中的 screenName 不起作用

    我刚刚在我的应用程序中添加了对 Google Analytics 分析 的支持 但我无法
  • 未找到带有 URI 的 HTTP 请求的映射 [/favicon.ico]

    我不记得我对代码进行了哪些更改 但每当我单击网络上的任何链接时 它都会显示以下内容 WARN org springframework web servlet PageNotFound No mapping found for HTTP re
  • 如何从 Node.js 中的 Http.IncomingMessage 检测 http 与 https

    给定一个Http IncomingMessage由一个创建http s Server为了响应请求 检测请求是否是 http 与 https 的正确 推荐方法是什么 一些我不知道的随机想法是否正确 检查端口 seems wrong might