http与https协议

这里是我看文章整合的知识!非原创,,可能中间会放上自己的理解
参考: https://blog.****.net/m0_37268841/article/details/81503882

http与https的比较

  • http超文本传输协议

    • 是一种发布和接收HTML页面的方法,被用于在Web浏览器与网站服务器之间传递信息
    • 默认工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。
    • 以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
  • http 超文本传输协议:

    • 是一种透过计算机网络进行安全通信的传输协议。
    • HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。
    • HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
    • HTTPS默认在TCP协议443端口,其工作流程一般如以下方式

    1、TCP 三次同步握手
    2、客户端验证服务器数字证书
    3、DH 算法协商对称加密算法的**、hash 算法的**
    4、SSL 安全加密隧道协商完成
    5、网页以加密的方式传输,用协商的对称加密算法和**加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。

以上可以总结以下http和https的区别

  1. http是明文传输,数据未加密,安全性较差;https数据传输过程是加密的,安全性较好。
  2. 使用https协议需要用到CA(数字证书认证机构),需要一定费用
  3. http页面响应速度较快,因为http使用tcp三次握手建立连接,客服端和服务器端需要交换3个包。而https除了TCP的三个包好友ssl的9个包。总共12个。所以响应速度比http慢。
  4. http和https使用的是完全不同的连接方式,端口也不一样,http是80,https是443
  5. HTTPS 是建构在 SSL/TLS 之上的 HTTP 协议,所以, HTTPS 比 HTTP 要更耗费服务器资源

SSL协议
1.SSL协议(安全套接字协议)是Web浏览器与Web服务器之间安全交换信息的协议
2.SSL协议的三个特性

  • 保密:在握手协议中定义了会话的**后,所有的消息都被加密
  • 鉴别:可选的客户端验证,和强制的服务器端验证
  • 完整性:传送的消息包括消息完整性检查
  1. SSL协议的位置

http与https协议

TLS协议(安全传输层协议):https://baike.baidu.com/item/TLS协议/7129331?fr=aladdin

http工作过程

  1. 地址解析
  2. 封装http请求数据包
  3. 封装成TCP包,建立TCP连接(TCP三次握手)
  4. 客户机发送请求命令
  5. 服务器响应
  6. 服务器关闭TCP连接

1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

TCP三次握手

http与https协议

  • 为什么连接的时候是三次握手,关闭的时候却是四次握手?
    因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

参考: https://blog.****.net/qq_38950316/article/details/81087809