2023年8月1日发(作者:)

⼀道⾼频Java⾯试题:HTTP与HTTPS的区别是什么?HTTP与HTTPS的区别是什么?这是Java⾯试官经常会问的⼀道Java⾯试题,今天本⽂将为你解答。

超⽂本传输协议HTTP协议被⽤于在Web浏览器和⽹站服务器之间传递信息,HTTP协议以明⽂⽅式发送内容,不提供任何⽅式的数据加密,如果攻击者截取了Web浏览器和⽹站服务器之间的传输报⽂,就可以直接读懂其中的信息,因此,HTTP协议不适合传输⼀些敏感信息,⽐如:信⽤卡号、密码等⽀付信息。为了解决HTTP协议的这⼀缺陷,需要使⽤另⼀种协议:安全套接字层超⽂本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加⼊了SSL协议,SSL依靠证书来验证服务器的⾝份,并为浏览器和服务器之间的通信加密。⼀、HTTP 和 HTTPS 的基本概念HTTP:超⽂本传输协议(HTTP,HyperText Transfer Protocol)是互联⽹上应⽤最为⼴泛的⼀种⽹络协议。设计 HTTP 最初的⽬的是为了提供⼀种发布和接收 HTML 页⾯的⽅法。它可以使浏览器更加⾼效。HTTP 协议是以明⽂⽅式发送信息的,如果⿊客截取了 Web 浏览器和服务器之间的传输报⽂,就可以直接获得其中的信息。HTTP 原理:① 客户端的浏览器⾸先要通过⽹络与服务器建⽴连接,该连接是通过 TCP 来完成的,⼀般 TCP 连接的端⼝号是80。 建⽴连接后,客户机发送⼀个请求给服务器,请求⽅式的格式为:统⼀资源标识符(URI)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容。② 服务器接到请求后,给予相应的响应信息,其格式为⼀个状态⾏,包括信息的协议版本号、⼀个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容。HTTPS:是以安全为⽬标的 HTTP 通道,是 HTTP 的安全版。HTTPS 的安全基础是 SSL。SSL 协议位于 TCP/IP 协议与各种应⽤层协议之间,为数据通讯提供安全⽀持。SSL 协议可分为两层:SSL 记录协议(SSL Record Protocol),它建⽴在可靠的传输协议(如TCP)之上,为⾼层协议提供数据封装、压缩、加密等基本功能的⽀持。SSL 握⼿协议(SSL Handshake Protocol),它建⽴在 SSL记录协议之上,⽤于在实际的数据传输开始前,通讯双⽅进⾏⾝份认证、协商加密算法、交换加密密钥等。HTTPS 设计⽬标:(1) 数据保密性:保证数据内容在传输的过程中不会被第三⽅查看。就像快递员传递包裹⼀样,都进⾏了封装,别⼈⽆法获知⾥⾯装了什么。(2) 数据完整性:及时发现被第三⽅篡改的传输内容。就像快递员虽然不知道包裹⾥装了什么东西,但他有可能中途掉包,数据完整性就是指如果被掉包,我们能轻松发现并拒收 。(3) ⾝份校验安全性:保证数据到达⽤户期望的⽬的地。就像我们邮寄包裹时,虽然是⼀个封装好的未掉包的包裹,但必须确定这个包裹不会送错地⽅,通过⾝份校验来确保送对了地⽅ 。⼆、HTTP与HTTPS有什么区别?HTTP协议传输的数据都是未加密的,也就是明⽂的,因此使⽤HTTP协议传输隐私信息⾮常不安全,为了保证这些隐私数据能加密传输,于是⽹景公司设计了SSL(Secure Sockets Layer)协议⽤于对HTTP协议传输的数据进⾏加密,从⽽就诞⽣了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进⾏加密传输、⾝份认证的⽹络协议,要⽐http协议安全。HTTPS和HTTP的区别主要如下:1、https协议需要到ca申请证书,⼀般免费证书较少,因⽽需要⼀定费⽤。2、http是超⽂本传输协议,信息是明⽂传输,https则是具有安全性的ssl加密传输协议。3、http和https使⽤的是完全不同的连接⽅式,⽤的端⼝也不⼀样,前者是80,后者是443。4、http的连接很简单,是⽆状态的;HTTPS协议是由SSL+HTTP协议构建的可进⾏加密传输、⾝份认证的⽹络协议,⽐http协议安全。三、HTTPS的⼯作原理我们都知道HTTPS能够加密信息,以免敏感信息被第三⽅获取,所以很多银⾏⽹站或电⼦邮箱等等安全级别较⾼的服务都会采⽤HTTPS协议。客户端在使⽤HTTPS⽅式与Web服务器通信时有以下⼏个步骤,如图所⽰。(1)客户使⽤https的URL访问Web服务器,要求与Web服务器建⽴SSL连接。(2)Web服务器收到客户端请求后,会将⽹站的证书信息(证书中包含公钥)传送⼀份给客户端。(3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。(4)客户端的浏览器根据双⽅同意的安全等级,建⽴会话密钥,然后利⽤⽹站的公钥将会话密钥加密,并传送给⽹站。(5)Web服务器利⽤⾃⼰的私钥解密出会话密钥。(6)Web服务器利⽤会话密钥加密与客户端之间的通信。四、HTTPS的优点尽管HTTPS并⾮绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进⾏中间⼈形式的攻击,但HTTPS仍是现⾏架构下最安全的解决⽅案,主要有以下⼏个好处:(1)使⽤HTTPS协议可认证⽤户和服务器,确保数据发送到正确的客户机和服务器;(2)HTTPS协议是由SSL+HTTP协议构建的可进⾏加密传输、⾝份认证的⽹络协议,要⽐http协议安全,可防⽌数据在传输过程中不被窃取、改变,确保数据的完整性。(3)HTTPS是现⾏架构下最安全的解决⽅案,虽然不是绝对安全,但它⼤幅增加了中间⼈攻击的成本。(4)⾕歌曾在2014年8⽉份调整搜索引擎算法,并称“⽐起同等HTTP⽹站,采⽤HTTPS加密的⽹站在搜索结果中的排名将会更⾼”。五、HTTPS的缺点虽然说HTTPS有很⼤的优势,但其相对来说,还是存在不⾜之处的:(1)HTTPS协议握⼿阶段⽐较费时,会使页⾯的加载时间延长近50%,增加10%到20%的耗电;(2)HTTPS连接缓存不如HTTP⾼效,会增加数据开销和功耗,甚⾄已有的安全措施也会因此⽽受到影响;(3)SSL证书需要钱,功能越强⼤的证书费⽤越⾼,个⼈⽹站、⼩⽹站没有必要⼀般不会⽤。(4)SSL证书通常需要绑定IP,不能在同⼀IP上绑定多个域名,IPv4资源不可能⽀撑这个消耗。(5)HTTPS协议的加密范围也⽐较有限,在⿊客攻击、拒绝服务攻击、服务器劫持等⽅⾯⼏乎起不到什么作⽤。最关键的,SSL证书的信⽤链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间⼈攻击⼀样可⾏。六、http切换到HTTPS如果需要将⽹站从http切换到https到底该如何实现呢?这⾥需要将页⾯中所有的链接,例如js,css,图⽚等等链接都由http改为https。例如:改为BTW,这⾥虽然将http切换为了https,还是建议保留http。所以我们在切换的时候可以做http和https的兼容,具体实现⽅式是,去掉页⾯链接中的http头部,这样可以⾃动匹配http头和https头。例如:将改为//。然后当⽤户从http的⼊⼝进⼊访问页⾯时,页⾯就是http,如果⽤户是从https的⼊⼝进⼊访问页⾯,页⾯即使https的。

2023年8月1日发(作者:)

⼀道⾼频Java⾯试题:HTTP与HTTPS的区别是什么?HTTP与HTTPS的区别是什么?这是Java⾯试官经常会问的⼀道Java⾯试题,今天本⽂将为你解答。

超⽂本传输协议HTTP协议被⽤于在Web浏览器和⽹站服务器之间传递信息,HTTP协议以明⽂⽅式发送内容,不提供任何⽅式的数据加密,如果攻击者截取了Web浏览器和⽹站服务器之间的传输报⽂,就可以直接读懂其中的信息,因此,HTTP协议不适合传输⼀些敏感信息,⽐如:信⽤卡号、密码等⽀付信息。为了解决HTTP协议的这⼀缺陷,需要使⽤另⼀种协议:安全套接字层超⽂本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加⼊了SSL协议,SSL依靠证书来验证服务器的⾝份,并为浏览器和服务器之间的通信加密。⼀、HTTP 和 HTTPS 的基本概念HTTP:超⽂本传输协议(HTTP,HyperText Transfer Protocol)是互联⽹上应⽤最为⼴泛的⼀种⽹络协议。设计 HTTP 最初的⽬的是为了提供⼀种发布和接收 HTML 页⾯的⽅法。它可以使浏览器更加⾼效。HTTP 协议是以明⽂⽅式发送信息的,如果⿊客截取了 Web 浏览器和服务器之间的传输报⽂,就可以直接获得其中的信息。HTTP 原理:① 客户端的浏览器⾸先要通过⽹络与服务器建⽴连接,该连接是通过 TCP 来完成的,⼀般 TCP 连接的端⼝号是80。 建⽴连接后,客户机发送⼀个请求给服务器,请求⽅式的格式为:统⼀资源标识符(URI)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容。② 服务器接到请求后,给予相应的响应信息,其格式为⼀个状态⾏,包括信息的协议版本号、⼀个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容。HTTPS:是以安全为⽬标的 HTTP 通道,是 HTTP 的安全版。HTTPS 的安全基础是 SSL。SSL 协议位于 TCP/IP 协议与各种应⽤层协议之间,为数据通讯提供安全⽀持。SSL 协议可分为两层:SSL 记录协议(SSL Record Protocol),它建⽴在可靠的传输协议(如TCP)之上,为⾼层协议提供数据封装、压缩、加密等基本功能的⽀持。SSL 握⼿协议(SSL Handshake Protocol),它建⽴在 SSL记录协议之上,⽤于在实际的数据传输开始前,通讯双⽅进⾏⾝份认证、协商加密算法、交换加密密钥等。HTTPS 设计⽬标:(1) 数据保密性:保证数据内容在传输的过程中不会被第三⽅查看。就像快递员传递包裹⼀样,都进⾏了封装,别⼈⽆法获知⾥⾯装了什么。(2) 数据完整性:及时发现被第三⽅篡改的传输内容。就像快递员虽然不知道包裹⾥装了什么东西,但他有可能中途掉包,数据完整性就是指如果被掉包,我们能轻松发现并拒收 。(3) ⾝份校验安全性:保证数据到达⽤户期望的⽬的地。就像我们邮寄包裹时,虽然是⼀个封装好的未掉包的包裹,但必须确定这个包裹不会送错地⽅,通过⾝份校验来确保送对了地⽅ 。⼆、HTTP与HTTPS有什么区别?HTTP协议传输的数据都是未加密的,也就是明⽂的,因此使⽤HTTP协议传输隐私信息⾮常不安全,为了保证这些隐私数据能加密传输,于是⽹景公司设计了SSL(Secure Sockets Layer)协议⽤于对HTTP协议传输的数据进⾏加密,从⽽就诞⽣了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进⾏加密传输、⾝份认证的⽹络协议,要⽐http协议安全。HTTPS和HTTP的区别主要如下:1、https协议需要到ca申请证书,⼀般免费证书较少,因⽽需要⼀定费⽤。2、http是超⽂本传输协议,信息是明⽂传输,https则是具有安全性的ssl加密传输协议。3、http和https使⽤的是完全不同的连接⽅式,⽤的端⼝也不⼀样,前者是80,后者是443。4、http的连接很简单,是⽆状态的;HTTPS协议是由SSL+HTTP协议构建的可进⾏加密传输、⾝份认证的⽹络协议,⽐http协议安全。三、HTTPS的⼯作原理我们都知道HTTPS能够加密信息,以免敏感信息被第三⽅获取,所以很多银⾏⽹站或电⼦邮箱等等安全级别较⾼的服务都会采⽤HTTPS协议。客户端在使⽤HTTPS⽅式与Web服务器通信时有以下⼏个步骤,如图所⽰。(1)客户使⽤https的URL访问Web服务器,要求与Web服务器建⽴SSL连接。(2)Web服务器收到客户端请求后,会将⽹站的证书信息(证书中包含公钥)传送⼀份给客户端。(3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。(4)客户端的浏览器根据双⽅同意的安全等级,建⽴会话密钥,然后利⽤⽹站的公钥将会话密钥加密,并传送给⽹站。(5)Web服务器利⽤⾃⼰的私钥解密出会话密钥。(6)Web服务器利⽤会话密钥加密与客户端之间的通信。四、HTTPS的优点尽管HTTPS并⾮绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进⾏中间⼈形式的攻击,但HTTPS仍是现⾏架构下最安全的解决⽅案,主要有以下⼏个好处:(1)使⽤HTTPS协议可认证⽤户和服务器,确保数据发送到正确的客户机和服务器;(2)HTTPS协议是由SSL+HTTP协议构建的可进⾏加密传输、⾝份认证的⽹络协议,要⽐http协议安全,可防⽌数据在传输过程中不被窃取、改变,确保数据的完整性。(3)HTTPS是现⾏架构下最安全的解决⽅案,虽然不是绝对安全,但它⼤幅增加了中间⼈攻击的成本。(4)⾕歌曾在2014年8⽉份调整搜索引擎算法,并称“⽐起同等HTTP⽹站,采⽤HTTPS加密的⽹站在搜索结果中的排名将会更⾼”。五、HTTPS的缺点虽然说HTTPS有很⼤的优势,但其相对来说,还是存在不⾜之处的:(1)HTTPS协议握⼿阶段⽐较费时,会使页⾯的加载时间延长近50%,增加10%到20%的耗电;(2)HTTPS连接缓存不如HTTP⾼效,会增加数据开销和功耗,甚⾄已有的安全措施也会因此⽽受到影响;(3)SSL证书需要钱,功能越强⼤的证书费⽤越⾼,个⼈⽹站、⼩⽹站没有必要⼀般不会⽤。(4)SSL证书通常需要绑定IP,不能在同⼀IP上绑定多个域名,IPv4资源不可能⽀撑这个消耗。(5)HTTPS协议的加密范围也⽐较有限,在⿊客攻击、拒绝服务攻击、服务器劫持等⽅⾯⼏乎起不到什么作⽤。最关键的,SSL证书的信⽤链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间⼈攻击⼀样可⾏。六、http切换到HTTPS如果需要将⽹站从http切换到https到底该如何实现呢?这⾥需要将页⾯中所有的链接,例如js,css,图⽚等等链接都由http改为https。例如:改为BTW,这⾥虽然将http切换为了https,还是建议保留http。所以我们在切换的时候可以做http和https的兼容,具体实现⽅式是,去掉页⾯链接中的http头部,这样可以⾃动匹配http头和https头。例如:将改为//。然后当⽤户从http的⼊⼝进⼊访问页⾯时,页⾯就是http,如果⽤户是从https的⼊⼝进⼊访问页⾯,页⾯即使https的。