Http协议三大特点:无连接,无状态,应用层
缺点:明文,不安全
无连接一次HTTP事务:
建立连接--发起请求--接收请求--断开连接
无连接:是指在数据请求中先建立连接,当数据请求完成后会自动断开连接
无状态:是指是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传
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协议安全。