HTTP与HTTPS
一、HTTP
1. 概述
HTTP
协议是Hyper Text Transfer Protocol
(超文本传输协议)的缩写,是实现网络通信的一种规范。 在计算机网络的世界里,存在不同的协议,如:广播协议、寻址协议、路由协议等......
HTTP
是一个基于TCP/IP
通信协议来传递数据(包括但不限于HTML 文件, 图片文件, 查询结果等)。
在实际应用中,HTTP
常被用于在web
浏览器和网站服务器之间传输信息,以明文方式传输,不提供任何方式的数据加密。
2. HTTP
协议特点
- 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有
GET
、HEAD
、POST
。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 - 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由
Content-Type
加以标记。 - 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
- 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。如果需要用到状态存储可以使用
Session
或者Cookie
。 - 支持
B/S
以及C/S
模式,即客户/服务模式。
二、HTTPS
1. 概述
在上述介绍HTTP中,了解到HTTP
传递信息是以明文的形式发送内容,这并不安全。而HTTPS
出现正是为了解决HTTP
不安全的特性
为了保证这些隐私数据能加密传输,让HTTP运行安全的SSL/TLS协议上,即 HTTPS = HTTP + SSL/TLS
,通过SSL
证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密
SSL
协议位于 TCP/IP
协议与各种应用层协议之间,浏览器和服务器在使用 SSL
建立连接时需要选择一组恰当的加密算法来实现安全通信,为数据通讯提供安全支持
2. 什么是SSL/TLS
SSL(Secure Socket Layer)
安全套接层,是1994年由Netscape公司设计的一套协议,并与1995年发布了3.0版本。
TLS(Transport Layer Security)
传输层安全是IETF在SSL3.0基础上设计的协议,实际上相当于SSL的后续版本。
SSL/TLS
是一个安全通信框架,位于TCP/IP
协议与各种应用层协议(HTTP
、POP
等)之间,为数据通信提高安全支持。
3. SSL
证书有哪些类型
有几种不同类型的 SSL 证书。一个证书可以应用于一个或多个网站,具体取决于类型:
- 单域:单域 SSL 证书仅适用于一个域(“域”是网站的名称,例如 www.cloudflare.com)。
- 通配符:与单域证书一样,通配符 SSL 证书仅适用于一个域。但是,它也包括该域的子域。例如,通配符证书可以覆盖 www.cloudflare.com、blog.cloudflare.com,和 developers.cloudflare.com,而单域证书只能覆盖第一个。
- 多域:顾名思义,多域 SSL 证书可以应用于多个不相关的域。
SSL 证书还具有不同的验证级别。验证级别就像背景检查一样,并且级别会根据检查的彻底性而变化。
- 域验证:这是最严格的验证级别,也是最便宜的级别。企业只需要证明他们控制着域。
- 组织验证:这是一个需要亲力亲为的过程:证书机构直接联系请求证书的人员或企业。这些证书更受用户信赖。
- 扩展验证:在发出 SSL 证书之前,需要对组织进行全面的背景检查。
4. SSL
连接建立流程
流程图如下所示:
三、HTTP
与HTTPS
区别
- HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理,相对更安全
- HTTP 和 HTTPS 使用连接方式不同,默认端口也不一样,HTTP是80,HTTPS是443
- HTTPS 由于需要设计加密以及多次握手,性能方面不如 HTTP
- HTTPS需要SSL,SSL 证书需要钱,功能越强大的证书费用越高