【网络】【应用层】常见的应用层协议

2023-10-26

1.HTTP/HTTPS

⑴概述

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议

⑵HTTP工作过程

在这里插入图片描述

⑶HTTP特点

  • 无状态,但是很多业务都需要对通信状态进行保存,于是我们引入了 Cookie 技术
  • 使用 Cookie 的状态管理,Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存Cookie。
  • 长连接 HTTP/1.1 和部分 HTTP/1.0 想出了持久连接的方法,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。在 HTTP/1.1 中,所有的连接默认都是持久连接
  • 管线化 能做到同时并行发送多个请求

⑷发展过程

①HTTP0.9

  • 仅支持GET
  • 相应仅支持超文本,响应后马上结束的连接
  • 没有 HTTP headers (无法传输其他内容类型的文件), 没有 status/error 代码, 没有 URLs, 没有版本控制

②HTTP1.0

  • 支持的方法:GET HESD POST
  • 响应:不再只限于超文本 (Content-Type 头部提供了传输 HTML 之外文件的能力 — 如脚本、样式或媒体文件)
  • 提供了对请求和响应都包含丰富元数据的 header 域 (HTTP 版本号、status code 和 content type)
  • HTTP1.0默认是短连接

③HTTP1.1(当前普遍使用的版本)

  • 支持的方法: GET , HEAD , POST , PUT , DELETE , TRACE , OPTIONS
  • 默认值长连接
  • 进行了重大的性能优化和特性增强,分块传输、压缩/解压等
  • 引入更多缓存机制
  • 增加了错误状态码
  • 在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)

HTTP1.1的缺点:
HTTP 1.1 在应用层以纯文本的形式进行通信。每次通信都要带完整的 HTTP 的头,而且不 考虑 pipeline 模式的话,每次的过程总是像上面描述的那样一去一回。这样在实时性、并 发性上都存在问题。

HTTP1.1的pipeline模式:
桌面浏览器仍然会选择默认关闭HTTP pipelining,只有幂等的请求可以被管线化。
它指定是把多个HTTP请求放到一个TCP连接中一一发送,而在发送过程中不需要等待服务器对前一个请求的响应;只不过,客户端还是要按照发送请求的顺序来接收响应!
如果建立多个TCP连接,会导致资源耗费和性能损失,而且也新建不了多少。

所以HTTP1.1仍旧存在线头阻塞(Head of line blocking)问题。

④SPDY(了解)

在这里插入图片描述
2012年由google提出,主要解决:

  • 降低延迟,针对HTTP高延迟的问题,SPDY优雅的采取了多路复用(multiplexing)
  • 请求优先级(request prioritization)。多路复用带来一个新的问题是,在连接共享的基础之上有可能会导 致关键请求被阻塞。SPDY允许给每个request设置优先级,这样重要的请求就会优先得到响应。比如浏览器加载首页,首页的html内容应该优先展示,之后才是各种静态资源文件,脚本文件等加载,这样可以保证用户能第一时间看到网页内容。
  • header压缩。前面提到HTTP1.x的header很多时候都是重复多余的。选择合适的压缩算法可以减小包的大小和数量。
  • 基于HTTPS的加密协议传输,大大提高了传输数据的可靠性。
  • 服务端推送(server push),采用了SPDY的网页,例如我的网页有一个style.css的请求,在客户端收到style.css数据的同时,服务端会将style.js的文件推送给客户端,当客户端再次尝试获取style.js时就可以直接从缓存中获取到,不用再发请求了。

⑤HTTP2.0

基于SPDY,解决了HTTP1.1的队首阻塞的问题。

二进制分帧层:

应用层和传输层之间加了一层:二进制分帧层。它会将所有传输的信息分割为更小的消息和帧(frame),并对它们采用二进制格式的编码。比起像HTTP/1.x这样的文本协议,二进制协议解析起来更高效,“线上”更紧凑,错误更少。

HTTP2.0 通信在一个连接上完成,这个连接可以承载任意数量的双向数据流。先完成的请求可以先响应。

这样我们可以将N个请求变成N个流,乱序发送到一个TCP连接中。
在这里插入图片描述

头部压缩

HPACK头部压缩算法,将原来每次都要携带的大量 key value 在两端建立一个索引表,对相同的头只发送索引表中的索引

服务端推送

服务端可以主动将一些资源推送给浏览器的缓存,浏览器需要时就可以直接在缓存中读取了

流优先级

用来告诉对方哪个流更重要

HTTP2.0的缺点

HTTP2.0如果有数据包丢失,就会出现队首阻塞的问题

当其中一个数据包遇到问题,TCP 连接需要等待这个包完成重传之后才能继续进行。

虽然 HTTP 2.0 通过多个 stream,使得逻辑上一个 TCP 连接上的并行内容,进行多路数据的传 输,然而这中间并没有关联的数据。一前一后,前面 stream 2 的帧没有收到,后面 stream 1 的帧也会因此阻塞。

⑤QUIC(了解)

QUIC 协议通过基于 UDP 自定义的类似 TCP 的连接、重试、多路复用、流量控制技术, 进一步提升性能。

⑥HTTPS

概述

HTTP是明文传输的,HTTPS在HTTP的基础上添加了SSL(安全套接字层)层来保证传输数据的安全问题
在这里插入图片描述

CA证书

CA证书是由一个权威的CA证书中心颁发的,我们首先来看一个简化的加密流程,对于每个访问XX的用户,生成的对称密钥B理论上来说都是不一样的。比如小明、小王、小光,可能生成的就是B1、B2、B3.

  • 小明访问XX,XX将自己的证书给到小明(其实是给到浏览器,小明不会有感知)
  • 浏览器从证书中拿到XX的公钥A
  • 浏览器生成一个只有自己自己的对称密钥B,用公钥A加密,并传给XX(其实是有协商的过程,这里为了便于理解先简化)
  • XX通过私钥解密,拿到对称密钥B
  • 浏览器、XX 之后的数据通信,都用密钥B进行加密
    在这里插入图片描述
    注:这里的Bill是服务器端

如何保证证书不被篡改呢?
数字签名是用来验证数据完整性的,首先将公钥与个人信息用一个Hash算法生成一个消息摘要,Hash算法是不可逆的,且只要内容发生变化,那生成的消息摘要将会截然不同.然后CA再用它的私钥对消息摘要加密,最终形成数字签名.这还不算, 还把原始信息和数据签名合并, 形成一个全新的东西,叫做“数字证书”

当客户端接收到证书时:

  • 用同样的Hash算法再次生成一个消息摘要
  • 然后用CA的公钥对证书进行解密
  • 对比两个消息摘要就能知道数据有没有被篡改过了.

那么CA的公钥又要从哪里来呢?这似乎陷入了一个鸡生蛋,蛋生鸡的悖论,其实CA也有证书来证明自己,而且CA证书的信用体系就像一棵树的结构,上层节点是信用高的CA同时它也会对底层的CA做信用背书,操作系统中已经内置了一些根证书,所以相当于你已经自动信任了它们(需要注意误安装一些非法或不安全的证书).

⑸HTTP报文信息

①报文结构

在这里插入图片描述

②请求报文

在这里插入图片描述
这里只关注几个重要的:

  • Cookie:     客户机通过这个头可以向服务器带数据
  • Accept:     用于高速服务器,客户机支持的数据类型
  • Content-Type: 请求正文的格式
  • Cache-control: 可以使用客户端缓存
  • If-Modified-Since: 在发送HTTP请求时,把浏览器端缓存页面的最后修改时间一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较。
    • 如果时间一致,那么返回HTTP状态码304(不返回文件内容),客户端接到之后,就直接把本地缓存文件显示到浏览器中
    • 如果时间不一致,就返回HTTP状态码200和新的文件内容,客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示到浏览器中

⑹响应报文

在这里插入图片描述
这里只关注几个重要的:

  • content-type:服务器通过这个头告诉浏览器回送数据的类型。
  • set-cookie: 设置HTTP cookie

⑺状态码

在这里插入图片描述
常用的状态码:

  • 200 表示从客户端发来的请求在服务器端被正常处理了
  • 400 表示请求报文中存在语法错误
  • 404 服务器上无法找到请求的资源
  • 500 表明服务器端在执行请求时发生了错误。也可能是 Web 应用存在的 bug 或某些临时的故障

2.FTP协议

(File Transfer Protocol)即文件传输协议

当我们下载电影的时候,最简单的方式就是采用HTTP协议,但是这种下载速度太慢。

FTP协议采用两个TCP连接来传输一个文件。

  • 控制连接
    服务器以被动的方式,打开众所周知用于 FTP 的端口 21,客户端则主动发起 连接。

  • 数据连接
    每当一个文件在客户端与服务器之间传输时,就创建一个数据连接。数据连接有服务端有主动模式被动模式。

3.P2P协议

HTTP协议和FTP协议都无法克服服务器的带宽问题,所有有个P2P协议。

在P2P协议中,我们即使服务下载者,也是提供者。常见的P2P软件例如BitTorrent,往往我们看到既有下载流量,又有上传流量。

P2P 也是有两种,一种是依赖于 tracker 的,也即元数据集中,文件数据分散;另一种是 基于分布式的哈希算法,元数据和文件数据全部分散。

⑴依赖tracker的协议

.torrent 文件(又叫做种子),里面包括announce(tracker URL)和文件信息。

下载的时候可以根据tracker URL去tracker 服务器拿到其它下载者(包括发布者)的IP,下载者根据种子的文件信息和对方交换没有的数据。而且通过下载块的hash验证码来验证准确性,不准确则重新下载。

一旦 tracker 服务器出现故障或者线路遭到屏蔽,BT 工具就无法正常工作了。

⑵DHT

Distributed Hash Table,有一种著名的 DHT 协议,叫Kademlia 协议:

它相当于一个朋友圈,假如我想买点吃的,我可以在我的朋友圈询问好友,好友然后通过他的朋友圈然后再询问,最终知道哪里有卖。

在一个DHT网络中每个节点都保存了一定的联系方式,但是肯定没有所有的联系方式。

任何一个BitTorrent 启动之后,在.torrent 文件可以找到一个node的列表,这些节点列表里肯定有我们可以联系上的,然后我们通过这个节点接入了一个DHT网络,然后我们计算这个文件的hash值来找到我们下载节点(这个下载节点不是唯一的,因而任意节点加入和离开都不影响整体网络),然后通过可以联系上的不断寻找,找到可以下载的节点。下载完之后我们这里也有了那个文件,最后告诉下载节点我们也有了,以后可以从我们这下载。

4.流媒体协议

⑴帧

每一张图片,我们成为一帧,如果每秒帧够多(FPS),就形成了视频

⑵直播的过程

在这里插入图片描述

  • 编码
    编码是一个压缩的过程,取出冗余,降低图像质量等等。
  • 推流
    从主播端推送到服务器
  • 接流
    在服务器上有个运行了同样协议的服 务端来接收这些网络包,从而得到里面的视频流,这个过程称为接流
  • 流处理
    服务端接到视频流之后,可以对视频流进行一定的处理,因为观众使用的客户端千差万别,要保证他们都能看到直播
  • 分发
    如果有非常多的观众,同时看一个视频直播,那都从一个服务器上拉流,压力太大了,因而 需要一个视频的分发网络,将视频预先加载到就近的边缘节点
  • 拉流
    观众的客户端请求
  • 解码
    将二进制变成一帧帧图片

6.ssh协议

Secure Shell,为远程登录会话和其他网络服务提供安全性的协议。SSH使用最多的是远程登录和传输文件,实现此功能的传统协议都不安全(ftp,telnet等),因为它们使用明文传输数据。而SSH在传输过程中的数据是加密的,安全性更高。

7.DNS

⑴概述

DNS服务器是通过域名去查询对应的IP的设备,要设计成分布式高可用的。

⑵DNS服务器分类

在这里插入图片描述

  • 根 DNS 服务器 :返回顶级域 DNS 服务器的 IP 地址
  • 顶级域 DNS 服务器:返回权威 DNS 服务器的 IP 地址
  • 权威 DNS 服务器 :返回相应主机的 IP 地址

根DNS服务器和顶级域DNS服务器,不会告诉本地DNS具体IP。而是指向它下级的服务器地址。权威DNS服务器会告诉本地DNS具体的IP地址。什么叫本地DNS呢?一般就是网络服务商的某个机房。

⑶DNS解析流程

在这里插入图片描述

  • 客户端先去本地DNS查询
  • 本地DNS查询不到就去根域名服务器
  • 根域名服务器指向对应的顶级域名服务器
  • 顶级域名服务器指向权威DNS服务器
  • 权威DNS服务器给本地DNS对应的IP
  • 本地DNS将IP返回给客户端,客户端和目标建立连接

⑷负载均衡

  • 内部负载均衡
    通过域名查询IP地址,IP地址可以配置多个做简单的轮询。
  • 全局负载均衡
    轮询访问不同地域的多个数据中心,也可以配置就近或者分运营商访问

⑸常用工具

①可以查询DNS解析过程dig。

8.HTTPDNS

⑴DNS存在的问题

  • 给A运营商发请求,A外包给了B,DNS服务器以为我们是B的用户,给我的IP是B的,跨运营商访问很慢
  • 本地DNS缓存并非最新的,也可能不再是最合适的
  • NAT网关会修改IP地址,DNS服务器无法判断运营商
  • DNS解析要根DNS到权威DNS,比较慢

⑵HTTPDNS

自己搭建基于HTTP协议的DNS服务,分布多个地点和运营商,使用HTTPDNS的一般是手机用户。

在客户端的缓存是手机应用自己做的,可以在配置如何更新,合适更新,可以直接请求HTTPDNS服务器。不需要本地DNS缓存(本地DNS缓存一般是运营商统一做的)。

⑶HTTPDNS缓存设计

  • 同步进行
    发现过期直接调用 HTTPDNS 的接口,返回最新的记录,更新缓存,实时性好,但是当多个请求同时发现,浪费资源
  • 异步进行
    可以将多个请求都发现过期的情况,合并为一个对于 HTTPDNS 的请求任务,只执行一次,减少 HTTPDNS 的压力。同时可以在即将过期的时候,就创建一个任务进行预加载,防止过期之后再刷新,称为预加载。缺点是客户可能请求到过期的数据

⑷HTTPDNS

因为客户端嵌入了SDK,不使用本地DNS缓存,转发等等,不会让权威DNS服务器误会客户端位置和运营商,权威服务器可以通过分析更加精准的提供IP地址
同时客户端可以分析网络请求来查看不同IP的服务质量

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

【网络】【应用层】常见的应用层协议 的相关文章

  • 网络综合布线七大子系统详解(图解)

    根据 GB50311 2007 综合布线系统工程设计规范 国家标准规定 网络综合布线七大子系统包括 1 工作区子系统 2 水平子系统 3 垂直子系统 4 管理间子系统 5 设备间子系统 6 进线间子系统 新加的 7 建筑群子系统 工作区子系
  • OSPF实验

    我们坠落 破碎 掉入深渊 但我们终会被托起 被治愈 我们无所畏惧 OSPF部分实验 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 没关系的 大家都会做错选择 会莫名其妙掉眼泪 走在路上会突然崩溃 但这并不影响我们去看
  • 网络基础:路由器工作原理

    目录 一 理论 1 路由器工作原理 2 路由表获取方式 3 路由器和交换机的区别 二 实验 1 华为系统配置2台路由器 2 华为系统配置3台路由器 3 华为系统配置浮动路由 一 理论 1 路由器工作原理 路由器工作在OSI七层协议中的第三层
  • OSPF协议

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 HCIA第四天 前言 一 OSPF协议 二 LAS优化 特殊区域 1 解决OSPF的不规则区域 三 扩展配置 前言 一 OSPF协议 OSPF 开放式最短路径优先协议 无类别
  • 什么是集群、分布式、集中式、伪分布式

    1 集中式 将项目等部署到同一台机器上 对机器性能要求比较高 一般会用多台机器备份 否则 如果机器出现死机等状况 整个项目将不能运行 eg 就好比你要盖一座房子 你房子就给一个人盖 如果这个人生病或者有事 你还没有合适的人来代替这个人 你的
  • 静态综合实验

    对未来的真正慷慨 是把一切都献给现在 阿尔贝 加缪 反抗者 静态综合实验 让我们来看看实验的样子 IP地址划分 R3下方电脑DHCP获取IP地址 路由表要尽量小 就要写缺省路由 缺省路由方向要相同 否则出现路由环路 但是缺省路由不能代表所有
  • 学习渗透,刚刚入坑——————基础知识了解

    今天学的很少但还是写写吧 我大一咋就没觉悟提前学习 大一整整四个月的寒假就让我躺废了 简单的说说我学到的知识 渗透测试 基础知识了解一下吧 最近的瓜很多 吃的真爽 孩子真是个神奇的存在 有的人因此得到祝福 有的人直接被封杀 当然这都拖了乐坛
  • 渗透学习 信息收集

    人生在世三万天 有酒有肉小神仙 小白入坑学废集6 基本信息收集 信息收集 域名信息 敏感目录 端口扫描 旁站C段 整站分析 谷歌hacker URL采集 后台查找 CDN绕过方法 就算我不成器 你又是个什么东西 基本信息收集 信息收集 域名
  • DNS根服务器

    从抓包可以看出 DNS在传输层上使用了UDP协议 那它只用UDP吗 DNS的IPV4根域名只有13个 这里面其实有不少都部署在漂亮国 那是不是意味着 只要他们不高兴了 切断我们的访问 我们的网络就得瘫痪了呢 我们来展开今天的话题 DNS是基
  • 2021-12-23 网工基础(十四) 链路聚合的两种模式、堆叠、集群、IP路由基础

    一 链路聚合的两种模式 1 手工模式 管理员手工指定 无协议报文 没有开销 2 LACP模式 交换机之间会交互LACP的协议 会有一点儿报文交互 一般正常情况下推荐使用LACP模式 一般自动协商都会手工强制的要好 除非自动确实失败 无法成功
  • Tomcat——从无知到崩溃

    老师给的完整的百度链接在这里 要用就拿去 链接 https pan baidu com s 1PmpJ1ZON3rSETTYuWFdNBw 提取码 br36 来自百度网盘超级会员V3的分享 首先安装Java的JDK环境 问题也大多数出在这里
  • TCP拥塞控制技术 与BBR的加速原理

    什么是拥塞 拥塞现象 是指数据到达通信子网的过程中 某一部分的分组数量过多 使得该部分网络来不及处理 以致引起这部分乃至整个网络性能下降的现象 严重时会导致网络陷入死锁 这种现象好比公路上常见的交通拥挤 当节假日公路车辆大量增加时 道路拥堵
  • tcp第三次握手ack均是1?

    本人做了tcp连接测试 但是结果和网络中其他人的说法有点不一致 测试使用了命令 tcpdump s1用网卡ens33抓取端口好为80的网络数据包 tcpdump nn i ens33 port 80 s2访问百度 建立3次连接请求数据 cu
  • 【网络基础】通俗易懂的了解HTTPS的整体过程

    文章目录 前言 HTTP 各个版本 结构 请求 请求行 请求头 请求体 响应 响应行 响应头 响应体 HTTPS 对称加密 非对称加密 对称和非对称结合加密 CA证书中级大发 证书 对称和非对称结合加密 证书关系链 拓展知识 证书的合法性验
  • TCP/IP协议栈与数据包封装

    TCP IP协议栈与数据包封装 TCP IP网络协议栈分为应用层 Application 传输层 Transport 网络层 Network 和链路层 Link 四层 如下图所示 该图出自 TCPIP 图 36 1 TCP IP协议栈 两台
  • C#post和GET方法的使用及案例展示

    我之前是接触过传参 http协议浏览器和服务器的三次握手以及常用的get post传参 都是有了解的 不过c 实现post get请求我第一想到的是 嗯 Ajax 当然这肯定不是 我们接下来用下面这页面为例 我们先来分析下 我们先看butt
  • 【网络基础】通俗易懂的搞明白什么是IP地址(小白向)

    目录 前言 IP协议 IP地址 查看IP地址的方法 公有IP地址与私有IP地址 IP地址的分类 网络路由传输流程简化版 IP地址过去的分类 过去分类带来的问题 前言 由于博主是一个刚转行没多久的前端 所以本次的文章也是面向像我一样的小白 内
  • 网络编程之字节序

    字节序 计算机数据表示存在两种字节顺序 网络字节顺序NBO Network Byte Order 与主机字节顺序HBO Host Byte Order 或者是大端模式和小端模式 网络字节序 大端模式 网络字节顺序NBO 按从高到低的顺序存储
  • 关于IP网段间互访的问题——路由是根本

    文章出处 http blog csdn net dog250 archive 2010 02 09 5303291 aspx 之所以IP网段间可以互相访问 完全靠的就是路由 因此路由是IP通信的根本 IP是机器可以进行通信的资格证书 而路由
  • 网络基础-应用层协议-HTTP/HTTPS

    HTTP HTTPS HTTP 基本概念 协议格式 请求报文 请求方法 请求资源地址 协议版本 应答报文 常见Header 常见状态码与状态描述 Cookie Session http协议特点 HTTPS 基本概念 对称加密与非对称加密 数

随机推荐

  • HashMap的底层实现原理

    HashMap的底层实现原理 一 HashMap的底层实现原理 HashMap 在 JDK1 8 之前的实现方式 数组 链表 JDK1 8之后的实现方式 数组 链表 红黑树 原理 当你 new 一个 HashMap 的时候 它底层并没有创建
  • 有哪些副业适合教师?有哪些是教师禁止的副业?

    有哪些副业适合教师 有哪些是教师禁止的副业 老师做副业选择挺多的 但是很多人一上来就说什么辅导班 做点小生意之类的 大家怕是还不知道对于在编教师有些兼职副业是做不了的 有些事没有禁止可以做的 还有一些是鼓励做的 那些副业是老师坚决不能碰的
  • Java初学之标识符

    目录 一 什么是标识符 二 标识符的命名规则 三 标识符的命名规范 一 什么是标识符 标识符 identifier 是指用来标识某个实体的一个符号 在不同的应用环境下有不同的含义 在java源程序中 凡是程序员有权利自己命名的单词都是标识符
  • 关于数据导入,教你几招

    前言 我们知道 数据库是存放数据的仓库 日常我们使用数据库也是为了存储数据 和数据库打交道总免不了要进行数据导入工作 工作中也可能遇到各种不同的数据导入需求 本篇文章主要分享下数据导入相关的小技巧 希望你能学到几招 1 弄清需求是关键 在进
  • AIX 常用命令

    查看所有vg对应的lv lsvg o lsvg i l 查看一个lv的详细细心 lv对应的日志文件 getlvcb AT fslv01 VGDA与ODM的同步 synclvodm v vght vg 名字 umount被占用删除 fuser
  • TortoiseGit 入门指南05:推送和拉取

    本节所讲内容均涉及到 远端版本库 版本库 的概念在 TortoiseGit 入门指南02 创建和克隆仓库 中提到过 它是工作目录下面的一个名为 git 的隐藏目录 我们每一次提交 每一个分支都会保存在版本库中 这个版本库就在我们电脑上的某个
  • C算法:冒泡排序算法(超级详细)!!!

    冒泡排序算法 冒泡排序是一种简单的排序算法 它也是一种稳定排序算法 其实现原理是重复扫描待排序序列 并比较每一对相邻的元素 当该对元素顺序不正确时进行交换 一直重复这个过程 直到没有任何两个相邻元素可以交换 就表明完成了排序 一般情况下 称
  • 常用的三种代码宏定义

    常用的三种代码宏定义 方式一 if endif 方式二 ifdef endif 方式一 if和方式二 ifdef别混搅 方式三 ifndef define else endif 方式一 if endif define LEDTEST 1 1
  • 文件解压缩操作

    文件解压缩操作 package com general system import java io File import java io FileOutputStream import java io IOException import
  • 无监督学习(含自编码器在MNIST上的图片重建实战)

    目录 1 无监督特征学习 1 1 PCA 主成分分析 1 2 稀疏编码 1 3 自编码器 2 自编码器在MNIST上的图片重建实战 3 自编码器变种 3 1 稀疏自编码器 3 2 堆叠自编码器 3 3 降噪自编码器 3 4 对抗自编码器 3
  • 【Qt5】频繁调用update()若干时间后无法自动重绘界面的问题

    最近在项目中遇到了这样的问题 程序的结构 主线程用于界面控制 线程1用于生成显示内容 线程2用于精确控制在正确的时刻控制界面显示生成的内容 实现方式 在线程2中直接调用显示控件的update 方法 让主线程重绘 运行效果 运行开始后的一段时
  • git创建本地仓库的三种方法

    首先新建文件夹E git repository repo1 然后打开该目录 接下来 有三种方式创建本地仓库 第一种方法 右键 单击git GUI here 点击创建仓库 然后关闭即可 此时可以看到新生成的文件夹 git 注意 git是隐藏文
  • Hive 分组取Top N

    成绩表S 字段sid cid score 求每门课程的前2名与后2名sid with a as select sid rank over distribute by cid sort by score rn rank over distri
  • 入门电机系列之3舵机

    入门电机系列 基于STM32硬件 本文章学习借鉴于野火团队资料 以表感谢 官网http products embedfire com 舵机的原理与应用 文章目录 入门电机系列 基于STM32硬件 前言 一 舵机的分类 舵机结构 舵机工作原理
  • 安装Java后端钉钉新的jar包指令

    install install file Dfile lib dingtalk sdk java taobao sdk java auto 1479188381469 20200403 jar DgroupId com taobao Dar
  • linux命令高亮显示,linux命令行高亮显示

    Loading gt 我们常用命令的朋友知道 纯黑白的看命令 时间长了很是不舒服 那么接下来就进行下命令行高亮的个性化的配置吧 想永久性的设置命令行高亮的效果 就需要修改 bashrc配置文件 一 进入 bashrc文件目录 bashrc这
  • 了解基础的docker容器化

    一 什么是docker容器 docker容器简单说来就是码头工具 docker是一个开源的的应用容器引擎 docker的图标是一个鲸鱼上有很多集装箱 docker就是鲸鱼 他上面的集装箱就代表各个容器 docker容器在目前的环境中大部分公
  • Freemarker常用语法简例(二)

    为使用Freemarker模板时的关键性语法编写代码示例或说明 主要用于回忆性检索或速查 阅读需要一定代码基础或对Freemarker有了解 常用Freemarker语法简例 常用Freemarker语法简例 二 bool值 lt 输出 t
  • 大数据——Java多线程

    多线程 认识线程 进程 线程 多线程的优势 编写线程类 使用Thread类创建线程 使用Runnable接口创建线程 使用Callable接口创建线程 线程的状态 新生状态 New Thread 可运行状态 Runnable 阻塞状态 Bl
  • 【网络】【应用层】常见的应用层协议

    文章目录 1 HTTP HTTPS 概述 HTTP工作过程 HTTP特点 发展过程 HTTP0 9 HTTP1 0 HTTP1 1 当前普遍使用的版本 SPDY 了解 HTTP2 0 二进制分帧层 头部压缩 服务端推送 流优先级 HTTP2