web服务器之——搭建基于https协议的静态网站

目录

一、HTTPS协议介绍

HTTPS的安全通信机制:  

工作流程可大致分为三个阶段:

二、搭建基于https协议的静态网站

第一步:关闭防火墙和SELinux

第二步:安装httpd

  准备工作:web服务器搭建

1、挂载

2、编辑配置文件

3、安装软件包

4、启动httpd

查看配置文件:

5、设置防火墙状态:

重启服务:

查看状态:  

 查看是否启动成功:

6、测试

第三步:安装mod_ssl模块

第四步、生成密钥

方法一:

方法二:

方案三:

1、创建自私钥

2、颁发证书和公钥

第五步:定义基于https协议的静态网站的配置文件

1、查看示例:

2、配置文件

第六步:创建资源文件

第七步:重启 httpd 服务

第八步:查看


一、HTTPS协议介绍

        超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。
        HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext TransferProtocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道。HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。  

​        SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。它是在上世纪90年代中期,由网景公司设计的。到了1999年,SSL 应用广泛,已经成为互联网上的事实标准。IETF 就把SSL 标准化。标准化之后SSL被改为 TLS(Transport Layer Security传输层安全协议)

SSL协议分为两层  

  • SSL记录协议 (SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能。
  • SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。  

SSL协议提供的服务:
1)认证用户和服务器,确保数据发送到正确的客户机和服务器
2)加密数据以防止数据中途被窃取
3)维护数据的完整性,确保数据在传输过程中不被改变。
        HASH是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。Hash算法特别的地方在于它是一种单向算法,用户可以通过hash算法对目标信息生成一段特定长度的唯一hash值,却不能通过这个hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
        常见的HASH算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMACSHA1。  

共享密钥加密(对称密钥加密):加密和解密使用相同密钥。
对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES。
公开密钥加密(非对称密钥加密):公开密钥加密使用一对非对称的密钥。一把叫做私有密钥,一把叫做公开密钥。私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。使用此加密方式,发送密文的一方使用公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听盗
走。
常见的非对称加密算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)。但由于公开密钥比共享密钥要慢,所以我们就需要综合一下他们两者的优缺点,使他们共同使用,而这也是HTTPS采用的加密方式。在交换密钥阶段使用公开密钥加密方式,之后建立通信交换报文阶段则使用共享密钥加密方式。

​        如何证明公开密钥本身是货真价实的公开密钥?如,正准备和某台服务器建立公开密钥加密方式下的通信时,如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥。或许在公开密钥传输过程中,真正的公开密钥已经被攻击者替换掉了。这个时候就需要第三方公证单位来帮忙啦。
​        CA就是一个公认的公证单位,你可以自行产生一把密钥且制作出必要的证书数据并向CA单位注册,那么当客户端的浏览器在浏览时,该浏览器会主动向CA单位确认该证书是否为合法注册过,如果是,那么该次连接才会建立,如果不是,浏览器会发出警告信息,告知用户应避免建立连接。所以说,如此一来WWW服务器不但有公证单位的证书,用户在建立连接时也比较有保障。  

当你在浏览器的地址栏上输入https开头的网址后,浏览器和服务器之间会在接下来的几百毫秒内进行大量的通信

1. 客户端浏览器向服务器端发送如下信息:

​    (1)客户端支持的SSL /TLS协议的版本号。
​    (2)Cipher Suite(密钥算法套件)。
​    (3)客户端产生的随机数,稍后用于生成"对话密钥"。

2. 服务器端向客户端发送如下信息:

  • 确认使用的加密通信协议版本,如果浏览器与服务器支持的版本不一致,服务器关闭加密通信。
  • 确认使用的加密方法。
  • 服务器证书。

      ​ 要使数字证书有用,它的结构必须采用一种可理解且可靠的形式,以便人们可以轻松地检索并理解证书内的信息。例如,护照采用这样一种结构:人们可以轻松地理解以前从未见过的那一类护照中的信息。同样,只要数字证书是标准化的,则无论颁发该证书的是哪个机构,人们都可以阅读并理解该证书。

      ​ S/MIME 标准规定:用于 S/MIME 的数字证书应遵守国际电信同盟 (ITU) X.509 标准。S/MIME版本 3 明确要求数字证书应遵循 X.509 的第 3 版。由于 S/MIME 依赖于已建立的数字证书结构公认标准,因此 S/MIME 标准建立在该标准的发展之上,从而提高了它的认可度。X.509 标准规定数字证书应包含标准化信息。具体地说,X.509 版本 3 证书包含下列字段:

  • 版本号 证书所遵循的 X.509 标准的版本。
  • 序列号 唯一标识证书且由证书颁发机构颁发的编号。
  • 签名算法 CA用于对证书进行数字签名的hash算法。
  • 颁发者名称 实际颁发该证书的证书颁发机构的标识。
  • 有效期 数字证书保持有效的时间段,并包含起始日期和过期日期。
  • 使用者名称 数字证书所有者的姓名。
  • 使用者公钥信息 与数字证书所有者关联的公钥以及与该公钥关联的特定公钥算法。
  • 颁发者唯一标识符 可以用来唯一标识数字证书颁发者的信息。
  • 使用者唯一标识符 可以用来唯一标识数字证书所有者的信息。
  • 扩充信息 与证书的使用和处理有关的其他信息。
  • 证书颁发机构的数字签名 使用指纹算法中指定的HASH算法以及证书颁发机构的私钥进行加密的数字签名。  
    • 服务器生成的随机数,稍后用于生成"对话密钥"  

      

3. 客户端利用服务器传过来的信息验证服务器的合法性。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,则可以知道认证服务器的公开密钥的是真实有效的数字证书认证机构,并且服务器的公开密钥是值得信赖的。(此处认证机关的公开密钥必须安全地转交给客户端。使用通信方式时,如何安全转交是一件很困难的事,因此,多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。)

4. 客户端随机产生一个用于后面通讯的对称密钥,然后用服务器的公钥对其加密,然后将加密后的对称密钥传给服务器。  

HTTPS的安全通信机制:  

​        client向server发送请求https://baidu.com,然后连接到server的443端口,发送的信息主要是随机值1和客户端支持的加密算法。
​        server接收到信息之后给予client响应握手信息,包括随机值2和匹配好的协商加密算法,这个加密算法一定是client发送给server加密算法的子集。
​        随即server给client发送第二个响应报文是数字证书。服务端必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面,这套证书其实就是一对公钥和私钥。传送证书,这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间、服务端的公钥,第三方证书认证机构(CA)的签名,服务端的域名信息等内容。
​        客户端解析证书,这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随即值(预主秘钥)。
​        客户端认证证书通过之后,接下来是通过随机值1、随机值2和预主秘钥组装会话秘钥。然后通过证书的公钥加密会话秘钥。
​        传送加密信息,这部分传送的是用证书加密后的会话秘钥,目的就是让服务端使用秘钥解密得到随机值1、随机值2和预主秘钥。
​        服务端解密得到随机值1、随机值2和预主秘钥,然后组装会话秘钥,跟客户端会话秘钥相同。
​        客户端通过会话秘钥加密一条消息发送给服务端,主要验证服务端是否正常接受客户端加密的消息。  

同样服务端也会通过会话秘钥加密一条消息回传给客户端,如果客户端能够正常接受的话表明SSL层连接建立完成了

工作流程可大致分为三个阶段:

1、认证服务器:浏览器内置一个受信任的CA机构列表,并保存了这些CA机构的证书。第一阶段服务器会提供经CA机构认证颁发的服务器证书,如果认证该服务器证书的CA机构,存在于浏览器的受信任CA机构列表中,并且服务器证书中的信息与当前正在访问的网站(域名等)一致,那么浏览器就认为服务端是可信的,并从服务器证书中取得服务器公钥,用于后续流程。否则,浏览器将提示用户,根据用户的选择,决定是否继续。当然,我们可以管理这个受信任CA机构列表,添加我们想要信任的CA机构,或者移
除我们不信任的CA机构。

2、协商会话密钥:客户端在认证完服务器,获得服务器的公钥之后,利用该公钥与服务器进行加密通信,协商出两个会话密钥,分别是用于加密客户端往服务端发送数据的客户端会话密钥,用于加密服务端往客户端发送数据的服务端会话密钥。在已有服务器公钥,可以加密通讯的前提下,还要协商两个对称密钥的原因,是因为非对称加密相对复杂度更高,在数据传输过程中,使用对称加密,可以节省计算资源。另外,会话密钥是随机生成,每次协商都会有不一样的结果,所以安全性也比较高。

3、加密通讯:此时客户端服务器双方都有了本次通讯的会话密钥,之后传输的所有Http数据,都通过会话密钥加密。这样网路上的其它用户,将很难窃取和篡改客户端和服务端之间传输的数据,从而保证了数据的私密性和完整性。

4、PKI(Public Key Infrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。一个机构通过采用PKI 框架管理密钥和证书可以建立一个安全的网络环境。PKI 主要包括四个部分:

1. X.509 格式的证书(X.509 V3)和证书废止列表CRL(X.509 V2)
2. CA 操作协议;
3. CA管理协议;
4. CA 政策制定。

X.509通用的证书格式包含三个文件:key,csr,crt。

  • key是私钥文件。
  • csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名。
  • crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息。
-----------------------------------------RHEL7-----------------------------------
-
(第一种) [root@localhost certs]# make jiami.crt
--------------------------------------------------------------------------------
-----
!!!!!!!注意!!!!!!!!!!!!!!!!
(第二种) #openssl req -newkey rsa:4096 -nodes -sha256 -keyout haha.key -x509 -days 365 -out haha.crt
-------------------------------------x509 key csr crt---------------------------
[root@www certs]# openssl genrsa -aes128 2048 > openlab.key
(第三种) #openssl req -utf8 -new -key openlab.key -x509 -days 365 -out openlab.crt

[root@localhost ~]# yum install mod_ssl -y

[root@localhost ~]# vim /etc/httpd/conf.d/host.conf

[root@localhost ~]# systemctl restart httpd

通过浏览器访问或者curl --insecure https://IP地址  

二、搭建基于https协议的静态网站

第一步:关闭防火墙和SELinux

[root@localhost node1]# systemctl stop firewalld
[root@localhost node1]# setenforce 0

第二步:安装httpd

  准备工作:web服务器搭建

1、挂载

[root@localhost node1]# mount /dev/sr0 /mnt/

2、编辑配置文件

[root@localhost node1]#  vim /etc/yum.repos.d/web.repo
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0

3、安装软件包

[root@localhost node1]# dnf install httpd -y

[root@localhost ~]# rpm -ql httpd

[root@localhost httpd]# tree /etc/httpd
/etc/httpd
├── conf
│ ├── httpd.conf
│ └── magic
├── conf.d
│ ├── autoindex.conf
│ ├── README
│ ├── userdir.conf
│ └── welcome.conf
├── conf.modules.d
│ ├── 00-base.conf
│ ├── 00-dav.conf
│ ├── 00-lua.conf
│ ├── 00-mpm.conf
│ ├── 00-proxy.conf
│ ├── 00-systemd.conf
│ └── 01-cgi.conf
├── logs -> ../../var/log/httpd
├── modules -> ../../usr/lib64/httpd/modules
└──
run -> /run/httpd

4、启动httpd

[root@localhost node1]# systemctl start httpd.service
注:1、启动用start,再次启动用restart,2、.service后缀可加可不加
查看配置文件:
[root@localhost node1]# rpm -ql httpd | grep etc

5、设置防火墙状态:

[root@localhost ~]# systemctl status firewalld
[root@localhost ~]#systemctl stop firewalld#可不用
[root@localhost ~]#systemctl disable firewalld

注意: systemctl start/restart/enable/disable/stop/status/reload 的区别  

重启服务:
[root@localhost ~]# systemctl restart httpd
查看状态:  
 查看是否启动成功:
[root@localhost node1]# systemctl is-active httpd
active##测试状态代码
[root@localhost node1]# systemctl stop httpd.service
[root@localhost node1]# systemctl is-active httpd
inactive

6、测试

  • 在客户端:curl http://ip地址, curl -I 可以查看http报文信息
  • 通过浏览器访问http://ip地址  

第三步:安装mod_ssl模块

mod_ssl是一种以openssl 的工具箱为基础专门为apache webserver 提供密码保护的软件

[root@localhost node1]# dnf install mod_ssl -y
 
[root@localhost node1]# rpm -ql mod_ssl

第四步、生成密钥

方法一:

-----------------------------------------RHEL7-----------------------------------
[root@localhost certs]# make jiami.crt

方法二:

[root@localhost node1]# cd /etc/pki/tls/certs/
[root@localhost certs]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout haha.key -x509 - days 365 -out https.crt

生成本地密钥可任意填写

方案三:

1、创建自私钥
[root@localhost node1]# cd /etc/pki/tls/certs/
[root@localhost certs]# /usr/bin/openssl genrsa -aes128 2048 > https.key
2、颁发证书和公钥
[root@localhost certs]# openssl req -utf8 -new -key https.key -x509 -days 365 -out https.crt

对于 https.key 和 https.crt 这种非对称的加密文件只有所属者才能可读可写,所以需要修改这两个文件的权限:

 
[root@localhost certs]# chmod 600 https.crt https.key

注:

  • 公钥和私钥配置默认路径:

/etc/pki/tls/private

  • 证书文件默认路径

/etc/pki/tls/certs/

第五步:定义基于https协议的静态网站的配置文件

1、查看示例:

[root@localhost node1]# vim /etc/httpd/conf.d/ssl.conf
<VirtualHost 192.168.126.140:443>
• SSLEngine on    ##开启认证引擎
• SSLHonorCipherOrder on   #密码算法套件
• SSLProtocol all -SSLv2
• SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA密码套件,列出允许客户端协商的
密码。
• SSLCertificateFile /etc/pki/tls/certs/jiami.crt指定证书路径
• SSLCertificateKeyFile /etc/pki/tls/certs/jiami.key指定密钥文件路径
• DocumentRoot /www/jiami
• ServerName 192.168.126.140
</VirtualHost>

2、配置文件


[root@localhost node1]# vim /etc/httpd/conf.d/https.conf
<VirtualHost 192.168.17.171:443>ServerName 192.168.17.171DocumentRoot /www/httpsSSLEngine onSSLCertificateFile /etc/pki/tls/certs/https.crt        SSLCertificateKeyFile /etc/pki/tls/certs/https.key       
</VirtualHost><Directory /www/https>AllowOverRide noneRequire all granted
</Directory>

第六步:创建资源文件

[root@localhost certs]# cd /etc/httpd/conf.d/ 
[root@localhost conf.d]# mkdir /www/https -pv

[root@localhost conf.d]# echo this is https > /www/https/index.html

第七步:重启 httpd 服务

[root@localhost node1]# systemctl restart httpd

使用第三中方法会弹出来需要输入密钥的窗口,第二种则正常重启

第八步:查看

[root@localhost conf.d]# curl https://192.168.17.171 -k
this is https

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/229828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PLC-Recorder V3 修改服务器和客户端通讯端口的方法

PLC-Recorder V3是服务器和客户端的架构&#xff0c;他们之间用TCP通讯。如果客户端无法与服务器建立连接&#xff08;重启也无效&#xff0c;并且确保没有老版本的PLC-Recorder在运行&#xff09;&#xff0c;则可能是端口被占用了。这时候需要修改他们之间的通讯端口&#xf…

gitlab 通过svn hook 触发

jenkins 起一个item 配置&#xff1a; 我选的自由风格的 源码管理配置 先选subversion 就是svn类型 url 设置project 的路径&#xff0c; 注意是工程&#xff0c;不是svn 顶层 添加一个账户来进行pull 等操作 选择添加的账号 构建触发器&#xff1a; &#xff0c;重要的是要自…

【二分查找】【z型搜索】LeetCode240:搜索二维矩阵

LeetCoe240搜索矩阵 本文涉及的基础知识点 二分查找算法合集 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例 1&#xff1a; 输入&#xff1a;…

翻译: ChatGPT Token消耗粗略计算英文就是除以四分之三

在这个视频中&#xff0c;我想带你快速浏览一些例子&#xff0c;以建立对在软件应用中使用大型语言模型的实际成本的直观感受。让我们来看看。这是一些示例价格&#xff0c;用于从不同的大型语言模型获取提示和回应&#xff0c;这些模型对开发者可用。即&#xff0c;如果你在你…

C#浅拷贝和深拷贝数据

目录 一、浅拷贝 二、深拷贝 一、浅拷贝 就是把原来的数据&#xff0c;复制一份&#xff0c;但是2份数据是共享地址的&#xff0c;修改第一份数据或者修改第二份数据&#xff0c;都会一起改变&#xff0c;这可能不是我们程序中需要的场景。 下面我们演示一下&#xff0c;首…

Vue 自定义搜索输入框SearchInput

效果如下&#xff1a; 组件代码 <template><div class"search-input flex flex-space-between flex-center-cz"><input type"text" v-model"value" :ref"inpuName" :placeholder"placeholder" keyup.enter&…

【赠书第11期】Unity 3D游戏开发

文章目录 前言 1 Unity 3D简介 2 Unity 3D基本概念 2.1 场景&#xff08;Scene&#xff09; 2.2 游戏对象&#xff08;Game Object&#xff09; 2.3 组件&#xff08;Component&#xff09; 2.4 资源&#xff08;Asset&#xff09; 3 Unity 3D重要组件 3.1 物理引擎 …

HarmonyOS4.0从零开始的开发教程18HarmonyOS应用/元服务上架

HarmonyOS&#xff08;十六&#xff09;HarmonyOS应用/元服务上架 简介 随着生活节奏的加快&#xff0c;我们有时会忘记一些重要的事情或日子&#xff0c;所以提醒功能必不可少。应用可能需要在指定的时刻&#xff0c;向用户发送一些业务提醒通知。例如购物类应用&#xff0c…

高性价比AWS Lambda无服务体验

前言 之前听到一个讲座说到AWS Lambda服务&#xff0c;基于Serverless无服务模型&#xff0c;另外官网还免费提供 100 万个请求 按月&#xff0c;包含在 AWS 免费套餐中是真的很香&#xff0c;对于一些小型的起步的网站或者用户量不大的网站&#xff0c;简直就是免费&#xff…

PyTorch官网demo解读——第一个神经网络(2)

上一篇&#xff1a;PyTorch官网demo解读——第一个神经网络&#xff08;1&#xff09; 继上一篇文章我们展示了第一个神经网络的完整代码&#xff0c;今天我们来聊聊这个神经网络的模型设计。 这个demo实际上只使用了一个简单的线性模型&#xff1a;y wx b&#xff1b; 手写…

云计算:Vmware 安装 FreeNAS

目录 一、实验 1.Vmware 安装 FreeNAS 2.配置Web界面 二、问题 1.iSCSI如何限定名称 2.LUN和LVM的区别 一、实验 1.Vmware 安装 FreeNAS &#xff08;1&#xff09;环境准备 VMware Workstation 17 FreeNAS相关安装部署镜像: 官网地址&#xff1a; https://download…

【linux】SSH终端Putty配置:文件上传/下载、显示中文字体、自动登录

文章目录 写在前面putty上传/下载文件1. 下载2. 解压和配置3. 使用sz/rz3.1 下载文件:sz3.2 上传文件:rz 显示中文字体1. 下载合适的字体2. 解压和安装3. putty配置 putty自动登录1. putty配置2. putty快捷方式配置3. 使用putty 写在后面 写在前面 一篇博客介绍了12种SSH终端工…

力扣刷题记录(10)LeetCode:51、37

51. N 皇后 应为各个皇后之间不能同行&#xff0c;所以一行只能有一个皇后。我们可以遍历每一行的各个位置&#xff0c;判断该位置是否可以放置皇后&#xff0c;一行放置一个。当一个皇后的位置已经在这一行确定了&#xff0c;我们就可以遍历下一行来确定下一个皇后在下一行的位…

✺ch3——数学基础

目录 3D坐标系和点矩阵单位矩阵转置矩阵逆矩阵逆转置矩阵矩阵的运算矩阵加法()矩阵乘法() 常用的变换矩阵平移矩阵缩放矩阵旋转矩阵透视矩阵正射投影矩阵LookAt矩阵 向量加法和减法点积叉积 局部空间和世界空间——模型矩阵M视觉空间和合成相机——模型-视图矩阵MV用GLSL函数构…

域名接入CloudFlare

接入Cloudflare分为两步 Cloudflare中注册站点域名DNS修改 整个过程如下 1.) 访问Cloudflare面板&#xff0c;添加站点 2.) 选择免费版 3.) 查看并明确DNS记录&#xff0c;其中服务的解析地址填写自己实际的服务器ip 4.) 去域名管理控制台&#xff0c;移除旧DNS服务器&#…

YOLOv5改进 | 2023 | CARAFE提高精度的上采样方法(助力细节长点)

一、本文介绍 本文给大家带来的CARAFE&#xff08;Content-Aware ReAssembly of FEatures&#xff09;是一种用于增强卷积神经网络特征图的上采样方法。其主要旨在改进传统的上采样方法&#xff08;就是我们的Upsample&#xff09;的性能。CARAFE的核心思想是&#xff1a;使用…

轻量封装WebGPU渲染系统示例<52>- Json数据描述材质、纹理等3D渲染场景信息

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/material/src/voxgpu/sample/DataDrivenScene3.ts 当前示例运行效果: ​​​​​​​ Json数据: {"renderer": {"mtplEnabled": true,"camera": {"eye&quo…

[原创][R语言]股票分析实战[2]:周级别涨幅趋势的相关性

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…

频谱论文:面向频谱地图构建的频谱态势生成技术研究

#频谱# [1]李竟铭.面向频谱地图构建的频谱态势生成技术研究.2019.南京航空航天大学,MA thesis.doi:10.27239/d.cnki.gnhhu.2019.000556. &#xff08;南京航空航天大学&#xff09; 频谱地图是对无线电环境的抽象表达&#xff0c;它可以直观、多维度地展现频谱态势信息&…

RabbitMq交换机详解

目录 1.交换机类型2.Fanout交换机2.1.声明队列和交换机2.2.消息发送2.3.消息接收2.4.总结 3.Direct交换机3.1.声明队列和交换机3.2.消息接收3.3.消息发送3.4.总结 4.Topic交换机4.1.说明4.2.消息发送4.3.消息接收4.4.总结 5.Headers交换机5.1.说明5.2.消息发送5.3.消息接收5.4.…