HTTP/HTTPS

答:HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议,与http主要区别在于:

#http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议;

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

下面具体介绍一下HTTP和HTTPS协议:

首先说明一下:HTTP和HTTPS协议是应用层协议;

上图充分表明:HTTP是应用层协议,并且HTTPS是在HTTP协议基础上添加SSL等加密策略后的协议;

TLS/SSL中使用了非对称加密,对称加密以及HASH算法。

(1)Http协议

1)HTTP协议和TCP协议之间的区别联系

①TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据;

②HTTP的默认端口号是80,TCP/IP协议通信编程时端口号需要自己指定(例如socket编程);

③HTTP协议是在TCP/IP协议基础上实现的,即HTTP数据包是经过TCP/IP协议实现传输的;

④HTTP是无状态的短连接协议,TCP是有状态的长连接协议;

HTTP是在有状态长连接TCP/IP协议的基础上实现的,为什么却是无状态短连接协议?

答:因为HTTP协议每次请求结束就会自动关闭连接,这样就变成了短连接;

短连接又导致了该次请求相关信息的丢失,也就造成了HTTP协议对于前期事务处理没有记忆能力,故为无状态协议。

2)HTTP协议其完整的工作过程可分为四步:

①连接:首先客户机与服务器需要建立连接(由TCP/IP握手连接实现)。只要单击某个超级链接,HTTP的工作开始;

②请求:建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容;

③应答:服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上;

④关闭:当应答结束后,浏览器和服务器关闭连接,以保证其他浏览器可以与服务器进行连接。

更完整的过程可能如下:

域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户。

       如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。

(2)Https协议

HTTPS握手过程包括五步:

1)浏览器请求连接;

2)服务器返回证书:证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。

3)浏览器收到证书后作以下工作:

    a) 验证证书的合法性;

    b) 生成随机(对称)密码,取出证书中提供的公钥对随机密码加密;

    c) 将之前生成的加密随机密码等信息发送给网站;

4)服务器收到消息后作以下的操作:

    a) 使用自己的私钥解密浏览器用公钥加密后的消息,并验证HASH是否与浏览器发来的一致;

    b) 使用加密的随机对称密码加密一段消息,发送给浏览器;

5)浏览器解密并计算握手消息的HASH:如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览

器生成的随机密码并利用对称加密算法进行加密。

注意:服务器有两个密钥,一个公钥、一个私钥,只有私钥才可以解密公钥加密的消息;

如图:

或者如下图:

HTTPS协议、SSL、和数字证书的关系介绍:

概述:对于HTTPS协议,所有的消息都是经过SSL协议方式加密,而支持加密的文件正是数字证书;

(1)SSL

SSL常用的加密算法:对称密码算法、非对称密码算法、散列算法;

SSL的加密过程:需要注意的是非对称加解密算法的效率要比对称加解密要低的多。所以SSL在握手过程中使用非对称密码算法来

协商密钥,实际使用对称加解密的方法对http内容加密传输;

(2)数字证书

数字证书是用于在INTERNET上标识个人或者机构身份的一种技术手段,它通过由一些公认的权威机构所认证,从而可以保证其

安全地被应用在各种场合。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。

猜你喜欢

转载自www.cnblogs.com/shuang0109/p/9118192.html