HTTP,HTTPS,SSH,SSL,TCK协议
HTTP(超文本传输协议)
是一种用户分布式,协作式和超媒体信息系统的应用层协议。简单来说就是一种发布和接受html页面的方法,被用于在web浏览器和网站服务器之间传递信息。
http默认工作在tcp协议80端口,用户访问网站http://打头的都是标准的http服务。
http协议以明文方式发送内容,不提供任何的数据加密,如果攻击者截取了web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,http协议不适合传输一些敏感信息,比如:信息卡号,密码等支付信息。
HTTPS(超文本传输安全协议)
用于解决运输层数据的安全协议,其核心是基于公钥密码学理论实现了对服务器身份认证,数据的私密性保护和对数据的完整性校验功能。
https是以安全为目标的http通道,在http的基础上通过运输加密和身份认证保护了数据的安全性。https经由http进行通信,但利用SSL/TLS来加密数据包。
https默认工作在TCP协议443端口,他的工作流程一般如一下方式
- 1.TCP 三次同步握手
- 2.客户端验证服务器数字证书
- DH算法协商对称加密算法的密钥,hahs算法的密钥
- SSL安全加密隧道协商完成
- 网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。
SSH
是在应用层基础上的安全协议,主要用于远程桌面连接,可以有效防止远程管理过程中信息泄露的问题。
SSL
是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。
当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
TCP
是传输层的,为用户提供双向的,可靠的传输服务的一个协议,它在建立连接之气,都需要进行三次握手来确定连接的建立。
TCP端口就是为TCP协议通信提供服务的端口。
OSI七层模型与TCP/IP协议栈模型对应关系:
各个层对应协议有哪些:
(1)数据链路层: MAC 、RLC、BMC、PDCP
主要提供链路控制(同步,异步,二进制,HDLC),差错控制(重发机制),流量控制(窗口机制)
(2)网络层:IP、ARP、RARP、IGMP、ICMP、BGP、RIP
提供阻塞控制,路由选择(静态路由,动态路由)
(3)传输层:TCP、UDP、RTP、SCTP
提供分割与重组数据,按端口号寻址,连接管理差错控制和流量控制,纠错的功能。传输层要向会话层提供通信服务的可靠性,避免报文的出错、丢失、延迟时间紊乱、重复、乱序等差错。
(4)应用层:HTTP、SMTP 、SNMP、FTP、Telent、SSH、NFS
三次握手
在TCP/IP协议中,TCP协议通过三次握手建立一个可靠的连接
- 第一次握手:客户端尝试连接服务器,向服务器发送 syn 包(同步序列编号Synchronize Sequence Numbers),syn=j,客户端进入 SYN_SEND 状态等待服务器确认
- 第二次握手:服务器接收客户端syn包并确认(ack=j+1),同时向客户端发送一个 SYN包(syn=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态
- 第三次握手:第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手
拓展
git项目获取中的https url和ssh url区别
使用https url克隆初学者比较方面,复制https url到git Bash里面直接用clone命令克隆到本地就好了但是每次fetch和push代码都需要输入账号和密码。
而使用ssh url克隆需要在克隆之前先配置和添加好ssh key,而每次fetch和push代码都不需要输入账号和密码