什么是https,https和http有何区别
什么是HTTP?
超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。
什么是HTTPS?
HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。
PS:TLS是传输层加密协议,前身是SSL协议,由网景公司1995年发布,有时候两者不区分。
什么是TLS/SSL?
TLS/SSL全称安全传输层协议Transport Layer Security, 是介于TCP和HTTP之间的一层安全协议,不影响原有的TCP协议和HTTP协议,所以使用HTTPS基本上不需要对HTTP页面进行太多的改造。
SSL有三种不同类型,需要了解下:
-
扩展验证型(EV)SSL证书,适用于大企业,像银行,证券网站都会使用这个证书,信任等级,安全等级是最高的。
-
组织验证型(OV)SSL证书,适用于企业网站,需要验证企业身份,安全等级比DV高些
-
域名验证型(DV)SSL证书 ,适用于个人网站,一般验证下网站信息就可以通过,很多免费版本
如果获取SSL证书?
一般分为三种价位的:贵的,便宜的,免费的
-
贵的(上千甚至上万的价):Symantec、globalsign、comodo、geotrust,除非大企业需要,中小企业网站没必要购买
-
便宜的(大概50美元上下):godday,RapaidSSL,Comodo positiveSSL
-
免费的:Let's Encrypt(比较推荐),Wosign,GlobeSSL
HTTP特点
-
支持客户/服务器模式。(C/S模式)
-
简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
-
灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
-
无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
-
无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快
HTTPS特点
-
内容加密:采用混合加密技术,中间者无法直接查看明文内容
-
验证身份:通过证书认证客户端访问的是自己的服务器
-
保护数据完整性:防止传输的内容被中间人冒充或者篡改
HTTPS和HTTP的区别主要如下:
-
HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头
-
HTTP 是不安全的,而 HTTPS 是安全的
-
HTTP 标准端口是80 ,而 HTTPS 的标准端口是443
-
HTTP 无法加密,而HTTPS 对传输的数据进行加密
-
HTTP无需证书,而HTTPS 需要CA机构(如Wosign)的颁发的SSL证书
总结
HTTP + 加密 + 认证 + 完整性保护 = HTTPS
经典前端面试题每日更新,欢迎参与讨论,地址:https://github.com/daily-interview/fe-interview。
更多angular1/2/4/5、ionic1/2/3、react、vue、微信小程序、nodejs等技术文章、视频教程和开源项目,请关注微信公众号——全栈弄潮儿。
image