http

HTTp

什么是HTTP

超文本传输协议 (HTTP) 是万维网的基础,用于使用超文本链接加载网页。HTTP 是一种应用层协议,旨在在联网设备之间传输信息,并在网络协议栈的其他层之上运行。HTTP 上的典型流程涉及客户端机器向服务器发出请求,然后服务器发送响应消息。

当您http://在域前面的地址栏中输入时,它会告诉浏览器通过 HTTP 连接。HTTP 使用 TCP(传输控制协议),通常通过端口 80,通过 Web 发送和接收数据包。客户端向托管网站的 HTTP 服务器(在 TCP 握手之后)发送请求消息;然后服务器回复响应消息。响应消息包含完成状态信息,例如HTTP/1.1 200 OK.

什么是HTTPS

HTTPS 是安全超文本传输协议的首字母缩写。与 HTTP 一样,它的主要目的是将数据从服务器传输到浏览器,以便您加载网站。 但是,HTTPS 使用加密连接在服务器和浏览器之间进行通信。SSL(安全套接字层)证书可保护传输的数据在交换时不被盗。 HTTPS 创建于 1994 年,但直到 2019 年才被广泛用作标准。它的流行主要是由于谷歌在 2014 年建议网站切换到 HTTPS。 您还可以在浏览器的地址栏中发现 HTTPS(例如https://www.semrush.com)。

当您https://在域前面的地址栏中输入时,它会告诉浏览器通过 HTTPS 连接。通常,通过 HTTPS 运行的站点会有一个重定向,因此即使您输入 http://,它也会重定向以通过安全连接进行传送。HTTPS 还使用 TCP(传输控制协议)来发送和接收数据包,但它是通过端口 443 在由传输层安全性(TLS) 加密的连接内进行的

“S”是什么

在以往的HTTP传输中数据都是以明文方式进行传输,而且HTTP协议是无状态的,不能验证对方身份,也不能保证数据传输完整性,如果攻击者在我们的通信中截取数据那就可以获得大量的有用信息,所以一种更加安全的协议HTTPS诞生了。

HTTPS 的目的是将这些内容加密,确保信息传输安全。最后一个字母 S 指的是 SSL/TLS 协议,它位于 HTTP 协议与 TCP/IP 协议中间,它是一个单独的协议,并且可以与应用层上其他协议进行搭配使用比如telenet,ftp等协议。这一层协议加在了传输层与应用层之间,它使通通信更加安全,通信可以互相验证对方身份,并且保证了数据传输完整性,对通信数据进行了加密,即使被攻击者截取到了数据流,也很难解析出有用的信息。

当你在访问一个HTTPS的网站时:
  
  1)客户端向服务端发送请求
  
  2)服务端向客户端发送自己的数字证书,证书包含公钥
  
  3)客户端校验证书是否正确。如果正确(并不代表对方就是服务器),发送一个随机数给服务端用私钥加密,自己用公钥去解密这个字符串,看是否能匹配		上。如果匹配上,则说明对方确实是服务器
  
  4)客户端生成一个对称加密算法,之后的内容会用这个对称加密进行加解密。客户端用公钥加密这个对称加密算法和密钥,发送给服务端。之后双方的通信		就按这个方式展开了。

HTTP和HTTPS的区别

image-20221020195343586

HTTP HTTPS
HTTP 的完整形式是超文本传输协议。 HTTPS 的完整形式是安全的超文本传输协议。
它在地址栏中写为 http://。 它在地址栏中写为 https://。
HTTP 通过端口号 80 传输数据。 HTTPS 通过端口号 443 传输数据。
它是不安全的,因为发送的是纯文本,黑客可以访问。 它是安全的,因为它发送黑客无法理解的加密数据。
它是一个应用层协议。 它是一种传输层协议。
它不使用 SSL。 它使用提供数据加密的 SSL。
Google 不会优先考虑 HTTP 网站。 由于 HTTPS 网站是安全网站,因此 Google 会为 HTTPS 提供偏好。
页面加载速度很快。 由于它支持的附加功能,即安全性,与 HTTP 相比,页面加载速度较慢

原文地址:http://www.cnblogs.com/ivanlee717/p/16811102.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性