l 概念
² 定义
HTTP(Hypertext Transfer Protocol Vertion ):超文本传输协议 (HTTP) 是一个用来通过互联网传输和接收信息的协议。HTTP使用请求/响应的过程,因此信息可在服务器间快速、轻松而且精确的进行传输。当你访问 Web 页面的时候就是在使用 HTTP 协议,但 HTTP 是不安全的,他人可以轻松窃听你跟 Web 服务器之间的数据传输。
HTTPS:正是由于HTTP的不安全性,所以才会提出HTTPS(Secure Hypertext Transfer Protocol(安全超文本传输协议)),因为在很多情况下,客户端和服务器之间的传输的信息是机密或者是敏感的信息,不想被未经授权的人知道或者访问,HTTPS恰好可以解决这个问题。
² 形象说法
我们每次打开网页的时候,不管是什么样的网址,都会出现HTTP://……,比如http://m18230343215.blog.163.com/,可是当我们打开像网上银行这些网址时,就会变成
https://ibsbjstar.ccb.com.cn/app/V5/CN/STY1/login.jsp,如下图:
因为这些东西是非常的私密的,对安全性要求很高。
其实HTTP就是我们想要获取网络上的超文本协议时必须遵循其传输规范,比如我们看电视剧的时候地下线人接头的时候必须说出相应的接头暗号,对方才能识别出是自己人,这个时候才会把你想要的信息告诉给你,否则便无法得知消息(当然敌人可能会把你杀死获取你身上携带的信息或者拿刀威胁你,那是后话了,哈哈)。
那么大家可能要问,既然有了安全保障,为什么还需要HTTPS呢?如果用一些众所周知的话当暗号,那么那些接头人的信息估计很早就被人知道了,如何让信息即使被泄露了,但是信息的真正内容也不会泄露呢,那就是“加密”,用自己人才能明白的话,别人听不懂的话来传输信息,HTTPS的工作机制就是是在http协议基础上增加了使用SSL加密传送信息的协议。
² HTTPS工作机制
使用 HTTPS 连接时,服务器要求有公钥和签名的证书。
当使用 https 连接,服务器响应初始连接,并提供它所支持的加密方法。作为回应,客户端选择一个连接方法,并且客户端和服务器端交换证书验证彼此身份。完成之后,在确保使用相同密钥的情况下传输加密信息,然后关闭连接。为了提供 https 连接支持,服务器必须有一个公钥证书,该证书包含经过证书机构认证的密钥信息,大部分证书都是通过第三方机构授权的,以保证证书是安全的。
具体工作机制:
Ø HTTP 包含如下动作:
1. 浏览器打开一个 TCP 连接
2. 浏览器发送 HTTP 请求到服务器端
3. 服务器发送 HTTP 回应信息到浏览器
4. TCP 连接关闭
Ø SSL 包含如下动作:
1. 验证服务器端
2. 允许客户端和服务器端选择加密算法和密码,确保双方都支持
3. 验证客户端(可选)
4. 使用公钥加密技术来生成共享加密数据
5. 创建一个加密的 SSL 连接
6. 基于该 SSL 连接传递 HTTP 请求
Ø 数字证书
我们不得不提一下数字证书。数字证书是由权威机构--CA证书授权(Certificate Authority)中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档,人们可以在互联网交往中用它来证明自己的身份和识别对方的身份。HTTPS也是采用这个机制来完整网页信息的加密的。
l HTTP与HTTPS的区别与联系
1.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
2.http的连接很简单,是无状态的,... HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。
3.http的数据是不加密的,https是经过ssl加密的,加密解密会消耗一些时间的。
4.大多数情况下,HTTP 和 HTTPS 是相同的,因为都是采用同一个基础的协议,作为 HTTP 或 HTTPS 客户端——浏览器,设立一个连接到 Web 服务器指定的端口。
简而言之http和https之间的区别就在于其传输的内容是否加密和是否是开发性的内容。主要用于一些对于安全性要求比较高的网站,比如银行,邮件等等,我们不想他人获得的私密信息。