学习阮一峰老师-互联网协议笔记(IP/UDP/TCP/HTTP)

互联网协议入门(一) - 阮一峰的网络日志

互联网协议入门(二) - 阮一峰的网络日志n

Http协议的请求和响应_陪雨岁岁年年的博客-CSDN博客

HTTP常用参数对照表_chuanguan1820的博客-CSDN博客
https传输过程及原理_修炼到救赎的博客-CSDN博客_https传输过程

一、什么是互联网

互联网(internet),又称国际网络,指的是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议(这就是互联网协议)相连,形成逻辑上的单一巨大国际网络。在这些网络中如阿帕网、因特网,而最常用的是因特网,所以通常用Internet来泛指互联网

二、什么是互联网协议

互联网协议(Internet Protocol Suite ,IPS),是一系列协议或一组规则,用于路由和寻址数据包,以便它们可以跨网络传播并到达正确的目的地。个人觉得,简而言之就是为了在网上完成某一件事儿而定义的规则,各部落按照规矩各尽其职,完成网络数据的传输使用等

三、互联网的五层模型

(一)五层模型

我们来分层理解互联网,自上而下,越上面越靠近用户,越下面越靠近硬件,用户可以明确感知的是应用层和实体层,中间就是传输层、网络层、链接层,其实叫什么不重要,重要的是你知道 互联网分成若干层就可以了。

(二)层与协议

既有五层模型,那么就要了解这五层是如何划分和工作的,它们是遵守了一定的协议和规则的,就叫做"协议"(protocol),互联网的每一层,都定义了很多协议。这些协议的总称,就叫做"互联网协议"(Internet Protocol Suite)。它们是互联网的核心,下面介绍每一层的功能,主要就是介绍每一层的主要协议。(这样一说就很好的解释了互联网及其协议的关系,互联网就是不同岗位上的干活的人的群体总称,协议就是约束干活的人的规章制度,我这里先简单理解为公司成员及其规章制度、岗位职责好了😉)

四、实体层

电脑要组网,首先是先建立链接,使用人们肉眼可见的或者不可见的如 电缆、光线、双绞线、无线电波等

这就叫做"实体层"(physical layer),它就是把电脑连接起来的物理手段。它主要规定了网络的一些电气特性作用是负责传送0和1的电信号

五、链接层 

确定了(传输形式+多台主机):

以太网协议(定义数据格式、长度)+MAC地址(标识要发送的位置)+广播(数据发送方式)

"链接层"就可以在多台计算机之间传送数据

(一)定义

单纯的0,1信号是没有意义的,必须规定解读方式:多少个电信号算一组?每个信号位有何意义?

链接层的功能:在"实体层"的上方,确定了0和1的分组方式。

(二)“以太网”协议

早期的时候,每家公司都有自己的电信号分组方式。后来,一种叫做"以太网"(Ethernet)的协议,占据了主导地位。

以太网规定,一组电信号构成一个数据包,叫做"帧"(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。

Head:"标头"包含数据包的一些说明项,比如发送者、接受者、数据类型等等;固定为18字节

Data:"数据"则是数据包的具体内容。最短为46字节,最长为1500字节

Frame: = Head+Data,64 <= 长度 <= 1518, 如果数据超过1518,就必须分割成多个帧进行发送。

(三)“MAC”地址

上面提到,以太网数据包的"标头",包含了发送者和接受者的信息。那么,发送者和接受者如何标识区分呢?

以太网规定,连入网络的所有设备,都必须具有"网卡"接口。数据包必须是从一块网卡,传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。

每块网卡出厂的时候,都有一个全世界独一无二的MAC地址,长度是48个二进制位,通常用12个十六进制数表示。

前6个十六进制数是厂商编号,后6个是该厂商的网卡流水号。有了MAC地址,就可以定位网卡和数据包的路径了

(四)广播

定义地址只是第一步,后面还有更多的步骤。

首先,一块网卡怎么会知道另一块网卡的MAC地址?

回答是有一种ARP协议,可以解决这个问题。这个留到后面介绍,这里只需要知道,以太网数据包必须知道接收方的MAC地址,然后才能发送。

其次,就算有了MAC地址,系统怎样才能把数据包准确送到接收方?

回答是以太网采用了一种很"原始"的方式,它不是把数据包准确送到接收方,而是向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方。

上图中,1号计算机向2号计算机发送一个数据包,同一个子网络的3号、4号、5号计算机都会收到这个包。它们读取这个包的"标头",找到接收方的MAC地址(ARP协议),然后与自身的MAC地址相比较,如果两者相同,就接受这个包,做进一步处理,否则就丢弃这个包。这种发送方式就叫做"广播"(broadcasting)。

有了数据包的定义、网卡的MAC地址、广播的发送方式,"链接层"就可以在多台计算机之间传送数据了。

六、网络层 

确定了(传输形式+子网络+任意主机):

IP协议(获取IP地址和网络)+ARP协议(获取MAC地址)+广播

确认计算机所在子网络,得到同一个子网络内的主机MAC地址,可以把数据包发送到任意一台主机之上了

(一)网络层由来

理论上,以太网协议,根据MAC地址寻找到电脑并发送数据,就满足了一次数据的传输,技术上来说并没有问题,但是却会引发一场灾难,即以太网采用“广播”形式发送数据导致同一子网络内“人手一包”,不仅效率低,且局限于同一子网络。

互联网是无数子网络共同组成的一个巨型网络,很像想象上海和洛杉矶的电脑会在同一个子网络,这几乎是不可能的。

因此,必须找到一种方法,能够区分哪些MAC地址属于同一个子网络,哪些不是。

如果是同一个子网络,就采用广播方式发送,否则就采用"路由"方式发送。("路由"的意思,就是指如何向不同的子网络分发数据包,这是一个很大的主题,本文不涉及。

遗憾的是,MAC地址本身无法做到这一点。它只与厂商有关,与所处网络无关。

这就导致了"网络层"的诞生。它的作用是引进一套新的地址使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做"网络地址",简称"网址"。

于是,"网络层"出现以后,每台计算机有了两种地址,一种是MAC地址,另一种是网络地址

两种地址之间没有任何联系MAC地址是绑定在网卡上的网络地址则是管理员分配的,它们只是随机组合在一起。

网络地址帮助我们确定计算机所在的子网络,

MAC地址则将数据包送到该子网络中的目标网卡。

因此,从逻辑上可以推断,必定是先处理网络地址,然后再处理MAC地址。

(二)IP协议

1、引进新地址,即网址,2、帮助区分不同计算机是否属于同一子网络(子网掩码)

规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址。

目前,广泛采用的是IP协议第四版,简称IPv4。这个版本规定,网络地址由32个二进制位组成。习惯上,我们用分成四段的十进制数表示IP地址,从0.0.0.0一直到255.255.255.255。

这个地址分成两个部分,前一部分代表网络,后一部分代表主机。

比如,IP地址172.16.254.1,这是一个32位的地址,假定它的网络部分是前24位(172.16.254),那么主机部分就是后8位(最后的那个1)。处于同一个子网络的电脑,它们IP地址的网络部分必定是相同的,也就是说172.16.254.2应该与172.16.254.1处在同一个子网络。

但是,问题在于单单从IP地址,我们无法判断网络部分。还是以172.16.254.1为例,它的网络部分,到底是前24位,还是前16位,甚至前28位,从IP地址上是看不出来的。

那么,怎样才能从IP地址,判断两台计算机是否属于同一个子网络呢?这就要用到另一个参数"子网掩码"(subnet mask)。

所谓"子网掩码",就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1主机部分全部为0。比如,IP地址172.16.254.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。

知道"子网掩码",我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是

比如,已知IP地址172.16.254.1和172.16.254.233的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,结果都是172.16.254.0,因此它们在同一个子网络。

总结一下,IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。

(三)IP数据包

根据IP协议发送的数据,就叫做IP数据包。不难想象,其中必定包括IP地址信息。

但是前面说过,以太网数据包只包含MAC地址,并没有IP地址的栏位。那么是否需要修改数据定义,再添加一个栏位呢?

回答是不需要,我们可以把IP数据包直接放进以太网数据包的"数据"部分,因此完全不用修改以太网的规格。这就是互联网分层结构的好处:上层的变动完全不涉及下层的结构。

具体来说,IP数据包也分为"标头"和"数据"两个部分。

"标头"部分主要包括版本、长度、IP地址等信息,"数据"部分则是IP数据包的具体内容。它放进以太网数据包后,以太网数据包就变成了下面这样。

IP数据包的"标头"部分的长度为20到60字节,整个数据包的总长度最大为65,535字节。因此,理论上,一个IP数据包的"数据"部分,最长为65,515字节。前面说过,以太网数据包的"数据"部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了。

(四)ARP协议

作用:通过IP地址,广播,获取MAC地址

关于"网络层",还有最后一点需要说明。

因为IP数据包是放在以太网数据包里发送的,所以我们必须同时知道两个地址,一个是对方的MAC地址,另一个是对方的IP地址。通常情况下,对方的IP地址是已知的(后文会解释),但是我们不知道它的MAC地址。

所以,我们需要一种机制,能够从IP地址得到MAC地址。

这里又可以分成两种情况。第一种情况,如果两台主机不在同一个子网络,那么事实上没有办法得到对方的MAC地址,只能把数据包传送到两个子网络连接处的"网关"(gateway),让网关去处理。

第二种情况,如果两台主机在同一个子网络,那么我们可以用ARP协议,得到对方的MAC地址。ARP协议也是发出一个数据包(包含在以太网数据包中),其中包含它所要查询主机的IP地址,在对方的MAC地址这一栏,填的是FF:FF:FF:FF:FF:FF,表示这是一个"广播"地址。它所在子网络的每一台主机,都会收到这个数据包,从中取出IP地址,与自身的IP地址进行比较。如果两者相同,都做出回复,向对方报告自己的MAC地址,否则就丢弃这个包。

总之,有了ARP协议之后,我们就可以得到同一个子网络内的主机MAC地址,可以把数据包发送到任意一台主机之上了。

七、传输层

确定了(传输形式+子网络+任意主机+任意程序(进程)

(一)传输层由来

有了MAC地址和IP地址,我们已经可以在互联网上任意两台主机上建立通信。

接下来的问题是,同一台主机上有许多程序都需要用到网络,比如,你一边浏览网页,一边与朋友在线聊天。当一个数据包从互联网上发来的时候,你怎么知道,它是表示网页的内容,还是表示在线聊天的内容?

也就是说,我们还需要一个参数,表示这个数据包到底供哪个程序(进程)使用。这个参数就叫做"端口"(port),它其实是每一个使用网卡的程序的编号。每个数据包都发到主机的特定端口,所以不同的程序就能取到自己所需要的数据。

"端口"是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口。不管是浏览网页还是在线聊天,应用程序会随机选用一个端口,然后与服务器的相应端口联系。

"传输层"的功能,就是建立"端口到端口"的通信。(程序之间)

"网络层"的功能是建立"主机到主机"的通信。(主机之间)

只要确定主机和端口,我们就能实现程序之间的交流。因此,Unix系统就把主机+端口,叫做"套接字"(socket)。有了它,就可以进行网络应用程序开发了。

(二)UDP协议

现在,我们必须在数据包中加入端口信息,这就需要新的协议。最简单的实现叫做UDP协议,它的格式几乎就是在数据前面,加上端口号

UDP数据包,也是由"标头"和"数据"两部分组成。

"标头"部分主要定义了发出端口和接收端口,"数据"部分就是具体的内容。然后,把整个UDP数据包放入IP数据包的"数据"部分,而前面说过,IP数据包又是放在以太网数据包之中的,所以整个以太网数据包现在变成了下面这样:

UDP数据包非常简单,"标头"部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。

(三)TCP协议

UDP协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到

为了解决这个问题,提高网络可靠性,TCP协议就诞生了。这个协议非常复杂,但可以近似认为,它就是有确认机制的UDP协议,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。

因此,TCP协议能够确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源

TCP数据包和UDP数据包一样,都是内嵌在IP数据包的"数据"部分。TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

八、应用层

应用程序收到"传输层"的数据,接下来就要进行解读。由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。

"应用层"的作用,就是规定应用程序的数据格式。

举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了"应用层"。

这是最高的一层,直接面对用户。它的数据就放在TCP数据包的"数据"部分。因此,现在的以太网的数据包就变成下面这样。

(一)HTTP

HTTP 协议(Hypertext Transport Protocol),全名 超文本传输协议,也是互联网的基础协议之一,

HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。它通过两个程序实现:一个是客户端程序(各种浏览器),另一个是服务器 (常称Web服务器)。这两个通常运行在不同的主机上,通过交换报文来完成网页请求和响应,报文可简单分为请求报文和响应报文。

什么是http协议_双鱼座boyy的博客-CSDN博客_什么是http协议

1、HTTP协议的请求

HTTP协议规定了客户端发给服务器的数据格式,包含4个部分,分别是【请求行】【请求头】【空行】【请求体】

【请求行】: 描述请求方式、请求URL、以及HTTP版本
    请求方式一共有8种,这里只了解常用的只有两种GET和POST(不区分大小写)
    GET请求:请求参数拼接在请求行上,在浏览器地址栏看见。
    POST请求:请求参数会被封装在请求体中,在浏览器地址栏看不见。

【请求头】: 描述客户端浏览器告诉服务器若干配置信息     
【空行】: 用于分割请求头与请求体
【请求体】:用于封装POST请求消息的请求参数;GET请求没有请求体数据
get请求格式

 post请求格式

请添加图片描述

 2、HTTP协议的响应

2.1 响应内容

HTTP协议规定服务器发给客户端的数据格式,包含4个部分,分别是【响应行】【响应头】【空行】【响应体】

【响应行】:由HTTP协议版本、响应状态吗、状态码描述组成
【响应头】:若干个键-值对组成,是服务器用来告诉客户端浏览器一些配置信息。
【空行】:用于分隔响应头和响应体
【响应体】:其实就一个HTML页面中的内容包括标签、CSS样式、JS等等

请添加图片描述

 2.2 响应状态码

服务器给客户端响应数据时,会携带着告诉浏览器当前数据的一个状态码,通过状态码告诉客户端请求成功、请求失败、找不到资源、请求重定向等等。客户端可以通过判断状态码,做出针对性的数据处理。

常见状态码  状态
200  请求成功
302/307重定向,所请求的页面已经临时转移到一个新的 URL
304 访问缓存,所请求的页面已经临时转移到一个新的 URL
404  客户端错误,请求路径服务器没有对应的资源
500  服务端错误,可能服务器内部有异常

3、HTTP协议请求头各参具体含义

HTTP 请求头各参数具体含义_青颜的天空的博客-CSDN博客_http请求头中有哪些参数

HTTP常用参数对照表_chuanguan1820的博客-CSDN博客

序号Header示例解释
1AcceptAccept: text/plain, text/html指定客户端能够接收的内容类型

2

Accept-CharsetAccept-Charset: iso-8859-5浏览器可以接受的字符编码集。
3Accept-EncodingAccept-Encoding: compress, gzip指定浏览器可以支持的web服务器返回内容压缩编码类型。
4Accept-LanguageAccept-Language: en,zh浏览器可接受的语言
5AuthorizationAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==HTTP授权的授权证书
6ConnectionConnection: close表示是否需要持久连接。(HTTP 1.1默认进行持久连接)
7CookieCookie: $Version=1; Skin=new;HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
8Cache-ControlCache-Control: no-cache指定请求和响应遵循的缓存机制
9Content-LengthContent-Length: 348 请求的内容长度
10Content-TypeContent-Type: application/x-www-form-urlencoded请求的与实体对应的MIME信息
11DateDate: Tue, 15 Nov 2010 08:12:31 GMT请求发送的日期和时间
12HostHost: www.zcmhi.com指定请求的服务器的 域名:端口号 也可以是 IP:端口号
13RefererReferer: http://www.zcmhi.com/archives/71.html亲测,任何非首次请求都有这个参数, 该首部用于所有请求.告诉服务器我是从哪个页面链接过来的,即来路
14OriginOrigin: https://developer.mozilla.org亲测,只有跨域请求或跳转时才有这个参数, 该首部用于 CORS 请求或者 POST 请求, 指示了请求来自于哪个站点。该字段仅指示服务器名称,并不包含任何路径信息。
15User-AgentUser-Agent: Mozilla/5.0 (Linux; X11)User-Agent的内容包含发出请求的用户信息
16WarningWarn: 199 Miscellaneous warning关于消息实体的警告信息
17Proxy-AuthorizationProxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==连接到代理的授权证书

4、HTTP协议的三次握手和四次挥手

HTTP的三次握手和四次挥手_CUG-GZ的博客-CSDN博客_http四次挥手

4.1 HTTP的三次握手

在这里插入图片描述

  1. 第一次握手,客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 seq1=x,向服务端申请报文传送,告诉他这是我请求连接接的凭证,客户端现在是send状态
    1. 确认报文中有:SYN=1(客户端报文),seq1=x (客户端的第一个报文,序列号x)
  2. 第二次握手,服务端接收请求SYN报文后,用自己的报文SYN和序列号seq2=y做响应,并拿客户端的seq1+1即x+1作为ACK的值,一起回复给客户端,告诉他我接受到你的申请了,好的,可以连接,这是我的连接接凭证,服务端现在是recevie 状态
    1. 确认报文中有:SYN=1(服务端报文),ACK=1,ack=seq1+1=x+1,seq2=y(服务端的第一段报文,序列号y)
  3. 第三次握手,客户端接收到服务端响应后,会发一个ACK报文,把服务器的 seq2+ 1即seq3=y+1 作为 ACK 的值协同服务端发来的信息再一起发送给服务端,告诉服务端我收到了你的 SYN 报文,既然你答应了,我现在要链接你了,此时客户端变成 ESTABLISHED 状态。服务器收到 ACK 报文之后,发现凭证正确,就说OK,也变成 ESTABLISHED 状态,此时,双方已建立起了连接。可以通信了
    1. 确认报文中有:ACK=1(客户端报文),ack=seq3=y+1,seq3=seq1+1=x+1(客户端的第二段报文,序列号x+1)

4.2 HTTP四次挥手

   在这里插入图片描述

刚开始双方都处于 ESTABLISHED 状态,假如是客户端先发起关闭请求。四次挥手的过程如下:

  1. 第一次挥手:客户端会发送一个 FIN 报文,报文中会指定一个序列号。向服务端申请我想关闭连接,此时客户端处于 FIN_WAIT1 状态。中止等待中
  2. 第二次挥手:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 +1 作为 ACK 报文的序列号值,表明已经收到客户端的关闭连接请求了,我还没想好要不要关闭,你继续等着,此时服务端处于 CLOSE_WAIT 状态。关闭等待中
  3. 第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。告诉客户端我想好了,可以关闭了,你确认下没问题就可以关了。此时服务端处于 LAST_ACK 的状态。最后确认,等待客户端的确认
  4. 第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 +1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT 状态。需要过一阵子以确保服务端收到自己的 ACK 报文之后才会进入 CLOSED 状态,服务端收到 ACK 报文之后,就处于关闭连接了,处于 CLOSED 状态。就是说客户端确认没问题可以关了,最后告知服务端一声,服务端收到后关闭,客户端等他接收到也关闭

(二)HTTPS

https传输过程及原理_修炼到救赎的博客-CSDN博客_https传输过程

1. 基础知识

  • SSL:一般情况下,网站使用的都是明文方式传输数据,但是在涉及到一些隐私信息时(如银行交易),这个时候网站就会跳转到 SSL,SSl的功能就是提供加密数据。这样的话,TCP/IP协议只要做好的自己的事情,数据加密就全权委托给SSL协议完成

  • TLS:TLS是对SSL的扩展和优化,他可以提供数据安全的同时,确保数据的完整性

  • HTTPS:超文本传输安全协议。就是http+ssl/tls,可以理解为安全版http

  • 对称加密:对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据

  • 非对称加密:公钥加密和私钥解密机制,使用一对密钥,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密

  • 证书认证:个人生成的公钥和私钥是不被信任的,只有经过CA认证后后才会被认为是可信任的密钥。目前大多浏览器都内置了国际知名CA的根证书中心,如果我们的密钥被CA中心签名过,那么就是合法的数字证书。但其CA验证密钥过程复杂,所以很多人使用自签名的数字证书

2、HTTPS协议传输流程

1、客户端发起https请求,连接到服务端的443端口
2、服务端采用的https有一套数字证书,这个证书可以自己配置,也可以像证书管理组织申请,证书的本质是公钥(发给任何人)和私钥(服务端保留)
3、服务端将公钥传送证书传递给客户端,证书中包含了很多信息,比如证书的颁发机构,过期时间,网址,公钥等
4、客户端解析证书,由客户端的TLS完成,首先会验证公钥是否有效,比如颁发机构,过期时间等。如果有异常,
就会弹出警告信息。(这个我们上网应该遇到过,一般都是提示说该网站的证书不可信任,是否继续等)。
证书没问题后会随机生成随机值(这个很重要,用于对称加密),然后使用第三步中的证书对这个随机值进行非对称加密
5、将证书非对称加密后的随机值传到服务器
6、服务器使用私钥对其进行非对称解密后,得到客户端的随机值,然后把内容通过该随机值进行对称加密
7、服务端将对称加密后的信息发给客户端
8、客户端用之前的生成的随机值来进行对称解密,获取内容明文

简化:
1、客户端发起HTTPS请求
2、服务端配置or申请证书(内含公钥私钥)
3、服务端把证书(含公钥)传给客户端
4、客户端解析证书,失败弹出警告,成功就生成随机值用公钥对其加密
5、客户端将加密后的随机值发给服务端
6、服务端用私钥解密随机值,而后把要返回的内容用随机值加密(可以理解为这个随机值只有客户端和服务端知道,想当于一个公钥)
7、服务端将加密信息发给客户端
8、客户端用之前生成的随机值给内容解密,获取明文

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值