首页 > 编程知识 正文

HTTPS协议的技术方法,HTTP1.1协议的通信过程

时间:2023-05-05 09:48:31 阅读:169084 作者:2274

从文章列表url栏中提取域名2查询ip3与对应的IP的终端取得联系[1]一般进行与服务器的连接1 .按照TCP数据报1.TCP建立联系3.3握手的意义4 .切断连接并挥手4次5.4次

从url栏中提取域名

在浏览器的url栏中输入url,如果有汉字,用unicode将该汉字变换为计算机能识别的机器语言

unicode (有utf-8、utf-16、utf-32三种情况。 为了区分他们,utf-8将一个汉字随机转换为1、2、3和4个字节,utf-16将一个汉字转换为2和4个字节,utf-32将一个汉字转换为4个字节

unicode详细信息

URL的标准格式:

【protocol】://【hostname】:【port】【path】? 【query】#【fragment】

协议是指http、https、文件等网络传输协议。 hostname是存储资源的域名、主机名或IP地址。 所谓port是指端口,因为有时也会使用默认端口,所以不会显示。 path是主机上的目录或文件地址,它决定服务器如何处理此请求。 query呢? #之前是参数(也称为搜索部分),用于在参数之间留出间隔。 fragment用于指定网络资源的碎片,检索部分检索的信息多种多样。 在fragment中,在明确表示哪些信息需要我们联系ip以获取域名后,应该调查ip,但在此之前,应该确认HSTS列表中是否有被联系的域名,如果有,则向与该域名对应的服务器发送

1 .查询IP,查看本机的主机文件和本地DNS服务器上是否有域名的相关记录

2 .如果询问根服务器后仍没有与域名对应的ip,则会转发到下一级服务器,直到被查到为止。

查询IP有两种方式:递归查询和迭代查询。 迭代查询是指当此级别的服务器没有IP地址时,将下一级服务器的IP传递给查询端以供查询端访问下一级服务器的方式。 递归查询是一种直接从这一级服务器访问下一级服务器并检查IP的查询方式,称为递归查询。 3连接对应IP的终端[1]通常连接服务器1.TCP数据报

要知道TCP的3次握手和4次挥手,只需要知道数字报纸以下3个值的作用。

(1)序列号(seq ) )。

序列号为32位,用于识别计算机a到计算机b的数据包序列号。

)2)确认号码(ack ) ) )。

确认号码为32位,ACK=seq 1。

(3)标志编号

用于标记这次发送的数据是什么类型,自己发送的数据“想要什么”。

标志编号类型

1.SYN :建立新连接

2 .断开fin个连接

3.ACK :验证序列号是否有效

4.RST :重新建立连接

5.PSH :接收方应尽快将此消息传递到APP应用层

6.URG :有紧急指针其实知道TCP三次握手四次挥手后只需要知道前三个标记号码的类型就可以了

2 .按照TCP建立3次联系并握手。 客户端向服务器发送的标志编号为SYN和序列号(Seq )为x

SYN意味着要取得联系,发送序列号(Seq )是为了向服务器提供随机生成的数据进行后续验证。 二次:服务器向客户端发送的标志编号为ACK,确认编号(ACK )为x 1,序列号) Seq )为y

ACK是Acknownledge的缩写,ACK意味着告诉浏览器刚才的序列号是有效的。 确认号(ACK )用于验证浏览器是否已成功接受数据,发送号(Seq )用于向浏览器发送一个数字进行后续验证。 第三次:客户端向服务器发送标志编号ACK,确认编号(ACK )为y 1

标志号(Ack )用于告诉服务器刚发送的序列号有效,确认号)是用于验证服务器成功收到数据的3.3握手的含义,最初浏览器向服务器发送消息

第二次是服务器向浏览器发送,此时,告知浏览器刚才发送的消息服务器收到了,说明服务器能够接受数据,浏览器可以正常地收到来自服务器的消息

第三次浏览器将消息发送到服务器,服务器基于验证知道刚发送的数据浏览器已成功接收,请单击浏览器能够发送数据

4 .断开连接4次并挥手1次:客户端向服务器发送的标识符是FIN,还有序列号(Seq )的TCP消息

FIN=1意味着发送方的缩字结束两次。 类似服务向客户端返回ACK消息

三次:服务器向客户端发送FIN消息

4次:客户端回复ACK消息

5.4次握手的意思是浏览器告诉了服务器已经散架了吧

二次是服务器说我知道了我收拾一下东西。

三次是服务器跟浏览器说我收拾好了分手吧。

四次是浏览器给服务器肯定的答复说分手吧。

(收拾东西就是指将不得不发送的数据先发完)

[2]二般情况下与服务器进行明文通信商量之后加密联系 1.SSL协议的构成

SSL协议实际上分为两个部分,分别是SSL记录层协议SSL握手协议,它用来记录上层协议的数据,再根据SSL握手协议发送,SSL记录层协议是基于TCP协议,而SSL握手协议是基于SSL记录层协议。

2.对记录层的介绍

SSL握手协议是架构在TCP/IP协议族的基础上,而记录层协议是建立在握手协议上,记录层协议主要是在确立加密通讯各种细节之后,对数据的加密规范做了声明。主要流程如下。

1、将要加密的数据分成块

2、对每一块数据进行压缩

3、按照每一块数据的长度生成一个MAC值,并且追加到压缩的数据后面

4、根据握手协议商量好的master-secret进行对称加密

5、添加上内容类型,主版本号,子版本号,内容长度之后就能进行传输了

3.SSL握手协议

ssl握手协议做的事情简单就是,由客户端和服务端共同商讨出来一个随机数,将文件的内容用一个对称加密算法进行加密,再根据非对称加密算法将这个随机数进行加密,这样做又能保证解密数据的速度,同时还能保证数据的安全,因为非对称加密的解密更加耗时。

1、第一步(client hello):在这一阶段由客户端发送自己支持的加密套件,同时发送一个随机数用于之后的rsa非对称加密。

2、第二步(server hello):由服务端发送确定下来接下来的加密套件,同时也发送一个随机数,用于生成一个master secret(用于对数据进行对称加密的密钥)。

3、第三步(certificate):这一部分由服务器发送自己的证书,证书中带着公钥。

4、第四步(server key exchange):这一部分是可选的意思就是可能并不会有这一步,但是如果加密套件中对生成的master secret使用DH 算法进行加密就会有这一步,用来发送DH加密需要的参数。

5、第五步(certificate request):这一部分由服务器表明是否需要客户端发送自己的证书,同时需要了解的是这一部分也不是必须的。

6、第六步(server done):服务端申明自己已经完成交互

7、第七步(certificate):如果在第五步服务端发送了自己的请求则客户端会在这一步中发送自己的证书,如果没有证书在这一关中也需要申明no-certificate,告诉服务端。可见这一步也不是必须的。

8、第八步(client key exchange):

(1)这一步就是必须的若使用的是RSA算法则客户端要使用之前服务端在第二步中发送来的随机数和自己在第一步产生的随机数按照不同的密钥交换算法生成一个pre-master(这个数的作用是生成master secret)并且用公钥按照RSA算法加密之后发送给服务端,服务端在收到这个数据之后用私钥将pre-master解密出来,然后用pre-master、两个随机数生成一个master secret密钥。同理客户端也是这样操作的。(2)如果使用的是DH算法加密生成的密钥则这一步客户端会发送自己的DH参数并且无论客户端和服务端都会根据之前server key exchange和本阶段的参数生成pre-master,并且产生加密数据的密钥。

9、第九步(certificate verify):在这一步服务端会根据从第一段会话开始到现在的所有数据生成一个HMAC用来让服务端校验发过数据包是否有被篡改,会话是否可信。这一阶段也是可以被省去的。

10、第十步(change cipher spec):客户端告诉服务端接下来的对话就会使用之前商量好的方式进行加密。

11、第十一步(finished):这一部分会将之前的会话的摘要的hash值根据生成的master-secret随机数进行加密,而master-secret会被公钥根据RSA或者DH算法加密,这么做的意义在于告诉服务端客户端有加密的能力且没有问题,而让服务端知道自己也有解密的能力。

12、第十二步(change cipher spec):服务端告诉客户端接下来的会话会使用之前商量好的方式进行加密。

13、第十三步(finished):服务端会发送一段加密好的数据给客户段,意义和第十一步是相同的。

4.对加密细节的简单讲解 密钥的确定
确定密钥要根据客户算和服务端传来的两个随机数,和客户端自己生成的随机数,之所以要用三个随机数,就是为了让这个加密数据的数无限接近真随机数。公钥加密密钥,密钥加密数据
RAS加密是非对称加密,用来加密数据的话,最后会使数据解析变慢,所以在实际使用过程中会将密钥用公钥根据RAS进行非对称加密,在将数据根据密钥进行对称加密,这就即使加密严格,又提高了解析的速度 <4>传输在互联网上的数据

网络的主要职能就是数据的交互,数据根据网卡由数据信息转换为光电信号,经过交换集线器(第二层交换机),路由器(第三层交换机),经过负载均衡器(4~7层交换机)最终到达你的电脑。

<5>页面渲染

浏览器收到服务器返回的页面数据后,解析之后,开始对页面进行渲染。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。