[Java网络安全系列面试题] HTTP和HTTPS协议区别和联系都有哪些?

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPSHTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

一、HTTP和HTTPS的基本概念


HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

二 、HTTP和HTTPS的主要特点和工作流程


2.1 HTTP特点

1.支持客户/服务器模式。(C/S模式)

2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GETHEADPOST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快

2.2  HTTP工作流程

第一步:建立TCP/IP连接,客户端与服务器通过Socket三次握手进行连接

第二步:客户端向服务端发起HTTP请求(例如:POST/login.html http/1.1

第三步:客户端发送请求头信息,请求内容,最后会发送一空白行,标示客户端请求完毕

第四步:服务器做出应答,表示对于客户端请求的应答,例如:HTTP/1.1 200 OK

第五步:服务器向客户端发送应答头信息

第六步:服务器向客户端发送请求头信息后,也会发送一空白行,标示应答头信息发送完毕,接着就以Content-type要求的数据格式发送数据给客户端

第七步:服务端关闭TCP连接,如果服务器或者客户端增Connection:keep-alive就表示客户端与服务器端继续保存连接,在下次请求时可以继续使用这次的连接

2.3  HTTPS特点

HTTPSHTTP协议的修改,它加密数据并确保其机密性。其配置可保护用户在与网站交互时免于窃取个人信息和计费数据。

1、优点

尽管https并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击,但https仍是现行架构下最安全的解决方案,主要有以下几个好处:

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

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

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

(4)谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等http网站,采用https加密的网站在搜索结果中的排名将会更高”。

2、缺点

虽然说https有很大的优势,但其相对来说,还是存在不足之处的:

(1)https协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电;

(2)https连接缓存不如http高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;

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

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

(5)https协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,ssl证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。

2.4 HTTPS工作流程

我们都知道https能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用https协议。

HTTP与HTTPS的区别

客户端在使用https方式与Web服务器通信时有以下几个步骤,如图所示。

(1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。

(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

网络安全面试题

绿盟护网行动

还有大家最喜欢的黑客技术

网络安全源码合集+工具包

所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 23
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 常见的JAVA试题中涉及计算机网络的问题主要包括以下几个方面: 1. TCP和UDP协议区别:这是面试中常见的问题,需要了解TCP和UDP协议的特点、应用场景、优缺点等。 2. HTTP协议:需要了解HTTP协议的请求方法、状态码、报文格式等基本知识,并且需要掌握HTTPHTTPS区别。 3. OSI七层模型:需要掌握七层模型的各层次的作用和协议。 4. 网络编程:需要掌握Java中的网络编程,如Socket编程、URL编程等,能够实现TCP/UDP协议的通信。 5. DNS解析:需要了解DNS解析的过程和原理,以及如何通过Java实现DNS解析。 6. 网络安全:需要了解网络攻击类型、防御措施、加密算法等相关知识。 7. 服务器性能优化:需要了解如何优化服务器的性能,如通过缓存、负载均衡等手段提高服务器的吞吐量和并发处理能力。 总之,在JAVA面试中涉及到计算机网络的问题比较多,需要有一定的基础知识和实践经验。 ### 回答2: 在常见的JAVA试题中,涉及计算机网络的问题有以下几种。 1. 网络通信:面试官会询问JAVA如何通过Socket进行网络通信,以及TCP和UDP的区别和使用场景。 2. HTTP协议:面试官可能会问到对HTTP协议的理解,以及常见的HTTP状态码、请求方法等。 3. RESTful API设计:面试官可能会让你设计一个满足RESTful风格的API,要求了解如何使用HTTP方法进行资源的增删改查。 4. 网络层面试题:面试官可能会问到网络层面的问题,例如IP协议、子网划分、路由选择算法等。 5. 分布式系统:面试官可能会询问JAVA中如何实现分布式系统,以及一致性、负载均衡、容灾等方面的问题。 6. 网络安全:面试官可能会问到JAVA中如何防止网络攻击,例如SQL注入、XSS攻击等。 总之,在JAVA面试中涉及计算机网络的问题广泛而深入,需要对网络基础知识、协议以及相关技术有一定的了解和掌握。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值