HTTP和HTTPS详解

Http协议三大特点:无连接,无状态,应用层

缺点:明文,不安全

HTTP协议栈图

无连接一次HTTP事务:

建立连接--发起请求--接收请求--断开连接

无连接:是指在数据请求中先建立连接,当数据请求完成后会自动断开连接

无状态:是指是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传

HTTPS协议栈图

HTTPS解决的问题:

HTTP协议由于是明文传送,所以存在三大风险:

1、被窃听的风险:第三方可以截获并查看你的内容

2、被篡改的危险:第三方可以截获并修改你的内容

3、被冒充的风险:第三方可以伪装成通信方与你通信

HTTP因为存在以上三大安全风险,所以才有了HTTPS的出现。

SSL/TLS概念

SSL/TLS是加密通信协议,SSL由NetScape在1994年设计,1999年互联网标准化组织ISOC接替 NetScape公司,发布了SSL的升级版TLS 1.0版。现在主流的浏览器等都支持TLS1.2版本,如iOS9中新增App Transport Security(简称ATS)特性,强制http转向https,其中加密通信协议就需要TLS1.2及以上版本。

SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。

SSL/TLS协议的基本过程是这样的:

(1) 客户端向服务器端索要并验证公钥。

(2) 双方协商生成"对话密钥"。

(3) 双方采用"对话密钥"进行加密通信。

所以说SSL/TLS协议主要是包含非对称加密(公钥加密)和对称加密,用非对称加密来得到对称加密的"对话秘钥",然后用对称加密来进行加密通信。

SSL握手:主要是为了确定对称加密的秘钥



HTTPS 的优缺点

优点

使用HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;

HTTPS 协议是由 SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比 http 协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。

HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。


缺点

HTTPS 比HTTP耗费更多服务器资源(https其实就是建构在SSL/TLS之上的 http协议,所以要比较https比http多用多少服务器资源,主要看SSL/TLS本身消耗多少服务器资源。)

耗费的资源多,过程也复杂,想当然访问不如HTTP高效。大流量网站非必要也不会采用,流量成本太高。

HTTPS 并不能防止站点被网络蜘蛛抓取。在某些情形中,被加密资源的URL可仅通过截获请求和响应的大小推得,这就可使攻击者同时知道明文(公开的静态内容)和密文(被加密过的明文),从而使选择密文攻击成为可能。

SSL 证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。

SSL 证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。



返回的状态码:

PS:这里只列举了一些常见的状态码,以及本人遇到的一些,更多的请自行了解。

100:这个状态码是告诉客户端应该继续发送请求。

200:表示服务器已经成功接受请求,并将返回客户端所请求的最终结果。

202:表示服务器已经接受了请求,但是没有处理,而且这个请求最终会不会处理还不确定。

204:服务器成功处理了请求,但没有返回任何实体内容。

301:客户端请求的网页已经永久移动到新的位置(连接发生了改变)。

404:请求失败,客户端请求的资源没有找到或者是不存在。

500:服务器遇到未知的错误,导致无法完成客户端当前的请求。

503:服务器由于临时的服务器过载或者是维护,无法解决当前的请求。


总结:

HTTPS和HTTP的区别主要为以下四点:

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。

二、http是超文本传输协议,信息是明文传输,https 则是具有安全性加密传输协议。

三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份 认证的网络协议比http协议安全。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。