http与https协议的区别

http

超文本传输协议,是一个基于请求与响应无状态的应用层的协议。常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法

https

基于http开发,用SSL(安全套接字)加密的安全超文本传输协议。在《图解HTTP》中,书中说过HTTPS是身披SSL外壳的HTTP,https是由http进行通信,利用SSL/TLS(TLS是传输层加密协议,前身是SSL,两者基本不区分)建立全信道,加密数据包。https使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。

 

http特点

1.无状态:协议对于客户端没有状态存储,对事物出来没有“记忆能力”,比如访问一个网站需要反复进行登录操作

(解决方案):1.Cookie/Session会话技术 将信息保存到客户端/服务端

       2.HTTP keep-alive持久连接方法 只要任意一端没有明确提出断开连接,则保持TCP连接状态

        在请求首部字段中的Connection: keep-alive即为表明使用了持久连接

2.无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量(浪费资源)。

3.基于请求与响应:基本的特性,由客户端发起请求服务端响应

 

4.简单快速、灵活

 

5.通信使用明文请求和响应不会对通信方进行确认无法保护数据的完整性( 不安全)。

https特点

1.内容加密:采用混合加密技术,中间者无法直接查看明文内容

 

2.验证身份:通过证书认证客户端访问的是自己的服务器

 

3.保护数据完整性:防止传输的内容被中间人冒充或者篡改

 

安全性:

1.https相对http更加安全,但是加密范围也比较有限,黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用

2.SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行

 

https协议握手阶段费时,影响网站响应速度,最好分而治之,择情使用

http与https协议的区别

上一篇:《大型网站技术架构演进与性能优化》——第七章:链路优化:大秒系统的极致优化思路


下一篇:C++经典问答 inline 函数