http和https的区别?http与TCP/IP区别?http/TCP三次握手四次挥手

http:超文本传输协议,在客户端与服务端之间传输信息,客户端发送html,css给服务器,服务器返回源码给客户端;

https:是一种更安全的传输协议,在协议上加了一层密码,不容易被黑客攻击,更加安全。多用于支付页面,政府机构页面,公安局页面,银行……;

https是什么?

https, 全称Hyper Text Transfer Protocol Secure,相比http,多了一个secure,这一个secure是怎么来的呢?这是由TLS(SSL)提供的,这个又是什么呢?估计你也不想知道。大概就是一个叫openSSL的library提供的。https和http都属于application layer,基于TCP(以及UDP)协议,但是又完全不一样。TCP用的port是80, https用的是443(值得一提的是,google发明了一个新的协议,叫QUIC,并不基于TCP,用的port也是443, 同样是用来给https的。谷歌好牛逼啊。)总体来说,https和http类似,但是比http安全。
在http(应用层) 和TCP(传输层)之间插入一个SSL协议, 就是https。一句话:http+加密+认证+完整性保护=https
http缺省工作在TCP协议80端口(需要国内备案),用户访问网站http://打头的都是标准http服务,http所封装的信息都是明文的,通过抓包工具可以分析其信息内容,如果这些信息内容包含你的银行卡账号、密码,你肯定无法接受这种服务,那有没有可以加密这些敏感信息的服务呢?那就是https!
https是http运行在SSL/TLS之上,SSL/TLS运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。此外客户端可以验证服务器端的身份,如果配置了客户端验证,服务器方也可以验证客户端的身份。
https缺省工作在tcp协议443端口,它的工作流程一般如以下方式:
1、完成tcp三次同步握手;
2、客户端验证服务器数字证书,通过,进入步骤3;
3、DH算法协商对称加密算法的密钥、hash算法的密钥;
4、SSL安全加密隧道协商完成;
5、网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。
附:https一般使用的加密与hash算法如下:
非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
hash算法:MD5,SHA1,SHA256
如果https是网银服务,以上SSL安全隧道成功建立才会要求用户输入账户信息,账户信息是在安全隧道里传输,所以不会泄密!

HTTP与TCP/IP区别?

TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。Web使用HTTP协议作应用层协议,以封装HTTP 文本信息,然后使用TCP/IP做传输层协议将它发到网络上。
下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI(Open System Interconnect)模型中的位置:

https和ssl在握手方向有什么区别:

https大致过程:
1、建立服务器443端口连接 ;
2、SSL握手:随机数,证书,密钥,加密算法;
3、发送加密请求 ;
4、发送加密响应;
5、关闭SSL;
6、关闭TCP.
SSL握手大致过程:
1、客户端发送随机数1,支持的加密方法(如RSA公钥加密);
2、服务端发送随机数2,和服务器公钥,并确认加密方法;
3、客户端发送用服务器公钥加密的随机数3;
4、服务器用私钥解密这个随机数3,用加密方法计算生成对称加密的密钥给客户端;
5、接下来的报文都用双方协定好的加密方法和密钥,进行加密.

TCP与UDP区别总结:

1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流(流模式);UDP是面向报文的(报文模式),UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP要求系统资源较多,UDP较少。TCP首部开销20字节;UDP的首部开销小,只有8个字节

  当在浏览器输入url,向服务器发送请求,浏览器都做了些什么?

http事务:从浏览器传给服务器,服务器反回内容给浏览器,这一个完整的过程就叫做http的一个事务。

扫描二维码关注公众号,回复: 11561039 查看本文章

1、http请求阶段:
    浏览器把url发送给DNS服务器;
    DNS服务器会根据IP找到对应的服务器;
    服务器接收到请求,客户端和服务器已经产生了连接;

2、http响应阶段:
    服务器接收到请求后,根据路径,找到相应的项目;
    服务器找到之后,服务器立即把一些响应信息放在响应头中,通过http发送给客户端,同时进行数据整理;
    把整理出来的数据,通过http发送给客户端,直到客户端接收完毕;

3、浏览器渲染阶段:
    浏览器拿到从服务器传输过来的数据文件;
    先遍历HTML,形成DOM树;
    代码从上到下解析,形成CSS树;
    DOM树和CSS树重新组成render树;
    浏览器进行描绘和渲染;

TCP三次握手

浏览器在给服务器传输数据之前,有三次握手,握手成功之后,才可以传输数据

三次握手的主要目的是确保连接是双工的,可靠的通过更多的重传机制来保证连接

1、浏览器需要先发送SYN码,客户端请求和服务器建立连接;
2、服务器接收到SYN码,再发送给客户端SYN+ACK码,我可以建立连接;
3、客户端接收到ACK码,验证这个ACK是否正确,如果正确则客户端和服务端则建立起数据连接;双方的数据发送通道都将开启;

白话-理解

四次挥手

1、当客户端无数据要传输了,会发送FIN码告诉服务器,我发送完毕了;
2、当服务端接收完毕后,告诉客户端ACK码,告诉客户端你可以把数据通道关闭了;
3、当服务器发送完毕之后,也会发送FIN码,告诉浏览器,数据发送完毕;
4、当客户端接收完毕 之后,同样发送ACK码,告诉服务器,数据接收完毕,你可以关闭;

三次握手和四次挥手的好处:确保数据的安全和完整
响应头:服务器会告诉浏览器数据的长度,浏览器数据长度和响应头数据长度相同,说明数据已经接收完毕了。

猜你喜欢

转载自blog.csdn.net/JackieDYH/article/details/107897952