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 条评论
登录 后参与评论

相关文章

  • 个人支付免签系统 Api 版本

    项目说明: 支持个人网站、安卓App、微信公众号、Pc软件收款的接入,所有的资金都会实时到账您的支付宝/微信余额中,支付宝无需上传收款二维码,支持H5唤醒支付,...

    程序员不务正业
  • iOS 7 之后UITextView 最后一行显示bug

    程序员不务正业
  • UITableView+FDTemplateLayoutCell于framework兼容问题

    程序员不务正业
  • HTTPS与HTTP

    上述过程中第2步骤中是存在风险的,因为公钥是暴露出来的,当公钥被中间人非法截获时,同时将公钥替换成中间人自己的公钥发送给客户端,从而得到对称加密的秘钥,进而伪装...

    用户6055494
  • python之路day06 面向对象

    https://www.cnblogs.com/alex3714/articles/5188179.html

    py3study
  • 用Python数据分析了北京积分落户名单,发现……

    导读:北京积分落户制度已经实行两年了,2018年申报积分落户的124657名申请人中6019位落户人员取得落户资格。

    华章科技
  • MVVM框架的搭建(一)——背景

    好久没有对于自己的知识进行总结了,趁着最近不忙,会写一系列关于MVVM框架的文章和构想,有兴趣的同学我们一起探讨,一起成长,一起进步。

    Demo_Yang
  • 用python数据分析了北京积分落户名单,发现……

    北京积分落户制度已经实行两年了,2018年申报积分落户的124657名申请人中6019位落户人员取得落户资格。

    朱小五
  • 孟岩:JPMCoin 与 Schneier 教授的“区块链无用论”

    春节假期一结束我就来澳洲出差,飞机一落地就看到两个大新闻,一喜一忧。喜的是摩根大通发了自己的数字货币 JPM Coin,忧的是我心中的密码朋克英雄 Bruce ...

    区块链大本营
  • python 面向对象

    面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作...

    py3study

扫码关注云+社区

领取腾讯云代金券