https和http连接过程

http连接

连接需经过三次握手:

第一次:建立连接时,客户端发送syn(syn=j)包到服务器,并进入syn_sent状态,等待服务器确认。 第二次:服务器收到syn包,必须确认客户端的syn(ack=j+1),同时自己也发送一个syn(syn=k)包,即syn+ack包到客户端,此时服务器进入syn_recv状态 第三次:客户端收到服务器的syn+ack包,向服务端发送确认包ack(ack=k+1),此包发送完成,客户端和服务器进入tcp连接成功状态,完成三次握手。

为什么要采用三次握手,两次不行吗?:防止发出的请求由于网络拥堵导致互相等待问题

20160809153504099.png

之所有有第三次握手的原因,有可能在客户端发送连接请求时,第一次发送,请求在网络的某个地方block了,这时候发送第二次网络请求,第二次网络请求服务器答复了,而第一个网络请求又来了,而这个请求应该是被弃用了的,所以就出现了这个请求异常。为了避免这个异常就建立了3次握手

断开连接需要四次挥手:

第一次:tcp客户端发送一个fin(fin=j),用来关闭客户端到服务器的数据传输 第二次:服务端收到fin,返回一个ack(ack=j+1),确认号为收到的序号+1 第三次:服务器关闭客户端的连接,发送一个fin(fin=m)给客户端 第四次:客户端返回ack(ack=m+1)报文确认,并将序列号设置为收到的序列号+1,完成断开

https连接:

1、客户端发送请求到服务端,建立连接(http三次握手)
2、客户端发送请求到服务端,建立连接(SSL/TSL握手)

1、客户端发起https请求,服务端返回给客户端一个公钥(证书) 2、客户端产生对称密钥 3、使用公钥对产生的对称密钥进行加密 4、发送加密后的对称密钥给服务器 5、客户端通过对称密钥加密的密文通信(ssl加密建立)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏清风

SVN 以及自动部署配置 原

2332
来自专栏Albert陈凯

SSH免密登录,RSA认证登录

说明 在客户机生成公钥和私钥, 然后将公钥拷贝到服务器.ssh/authorized_keys中, 客户机即可免密登录服务器了. 安装sshd yum -y i...

3587
来自专栏小白安全

SQL注入 上传绕过安全狗

一,绕过安全狗上传可执行脚本 附上php上传脚本源码,此源码未对上传文件类型做校验 <?php         move...

5297
来自专栏PHP在线

从输入url开始能做哪些优化

此文主要讲的事情是如何让用户快点看到首屏页面,其主要影响因素是延迟和解析渲染耗时。有关安全部分其实也是优化的一部分。我们着重说下网络部分。

1404
来自专栏云计算教程系列

使用Ubuntu 16.04进行初始服务器设置

当您第一次创建新的Ubuntu 16.04服务器时,您应该尽早采取一些配置步骤作为基本设置的一部分。这将提高服务器的安全性和可用性,并为后续操作奠定坚实的基础。

1600
来自专栏小白安全

小白博客 CryKeX:Linux内存加密密钥提取工具

CryKeX特性 1. 跨平台 2. 简单实用 3. 交互性强 4. 兼容性/可移植性强 5. 应...

3678
来自专栏网络

一步步带你了解前后端分离利器之JWT

一、HTTP的无状态性 HTTP 是无状态协议,它不对之前发送过的请求和响应的状态进行管理。也就是说,无法根据之前的状态进行本次的请求处理。假设要求登录认证的 ...

3185
来自专栏云计算教程系列

给你CVM服务器加把锁,如何使用SSH密钥

SSH或安全shell是用于管理服务器和与服务器通信的加密协议。使用Ubuntu服务器时,您可能会将大部分时间花在通过SSH连接到服务器中。

1654
来自专栏情情说

单点登录与权限管理本质:cookie安全问题

继续介绍「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,前一篇文章介绍了单点登录概念,以CAS协议的基本流程为例讲解了系统间的交互过程,过程中,c...

42913
来自专栏Albert陈凯

2018-10-11 Java 分布式应用追踪系统 skywalking (APM(应用性能监控)系统)Document

SkyWalking: 针对分布式系统的APM(应用性能监控)系统,特别针对微服务、cloud native和容器化(Docker, Kubernetes, M...

2702

扫码关注云+社区

领取腾讯云代金券