计算机网络面试专题:HTTP协议基本概念以及通信过程

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 计算机网络面试专题:HTTP协议基本概念以及通信过程、HTTPS基本概念、SSL加密原理、通信过程、中间人攻击问题、HTTP协议和HTTPS协议区别

一.知识回顾:

之前我们一起学习了HTTP1.0、HTTP1.1、HTTP2.0协议之前的区别、以及URL地址栏中输入网址到页面展示的全过程&&DNS域名解析的过程,接下来我们就来学习一下和HTTP协议的相关的考点:【强烈建议收藏:计算机网络面试专题:HTTP协议基本概念以及通信过程、HTTPS基本概念、SSL加密原理、通信过程、中间人攻击问题、HTTP协议和HTTPS协议区别】

image.png

二.HTTP协议你知道吗?通信的过程是什么样的?

2.1 HTTP协议基本概念

  1. HTTP协议,俗称超文本传输协议(Hypertext Transfer Protocol)。HTTP 协议是用来规范超文本的传输。超文本的意思就是在网络上传输包括文本在内的各式各样的消息。
  2. HTTP 是应用层协议,它以 TCP(传输层)作为底层协议,默认端口为 80。
  3. HTTP 是一个无状态(stateless)协议,也就是说服务器不维护任何有关客户端过去所发请求的消息。
  4. HTTP协议扩展性强、速度快、支持跨平台。

2.2 HTTP协议通信过程

  1. 服务器在 80 端口等待客户的请求。
  2. 浏览器发起到服务器的 TCP 连接(创建套接字 Socket)。
  3. 服务器接收来自浏览器的 TCP 连接。
  4. 浏览器(HTTP 客户端)与 Web 服务器(HTTP 服务器)交换 HTTP 消息。
  5. 关闭 TCP 连接。

三.那你知道HTTPS协议吗?HTTPS通信过程能讲讲吗?

3.1 HTTPS协议基本概念

  1. HTTPS 协议(Hyper Text Transfer Protocol Secure),是 HTTP 的加强安全版本。
  2. HTTPS 是基于 HTTP 的,也是用 TCP 作为底层协议,并额外使用 SSL/TLS 协议用作加密和安全认证。默认端口号是 443。
  3. HTTPS 协议中,SSL 通道通常使用基于密钥的加密算法,密钥长度通常是 40 比特或 128 比特。
  4. HTTPS协议保密性好、信任度高。

3.2 SSL/TLS 加密原理

HTTPS在内容传输的加密上使用的是对称加密,非对称加密只作用在公钥和私钥证书验证阶段

  1. 非对称加密:SSL/TLS 的核心要素是非对称加密,非对称加密只作用在公钥和私钥证书验证阶段。非对称加密采用两个密钥(一个公钥,一个私钥)。在通信时,私钥仅由解密者保存,公钥是由任何一个想与解密者通信的加密者所获取。
  2. 对称加密:SSL/TLS 实际对消息的加密使用的是对称加密。如果SSL/TLS采用非对称加密方案来通信, 但是非对称加密设计了较为复杂的数学公式算法,实际通信过程,代价高,效率低。所以,我们使用堆成加密的算法来对信息进行加密。

3.3 HTTPS通信过程

  1. 证书验证阶段
    (1).浏览器发起 HTTPS 请求
    (2).服务端返回 HTTPS 证书
    (3).客户端验证证书是否合法,如果不合法则提示告警
  2. 数据传输阶段
    (1).当证书验证合法后,在本地生成随机数
    (2).通过公钥加密随机数,并把加密后的随机数传输到服务端
    (3).服务端通过私钥对随机数进行解密
    (4).服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输。

具体过程如下图所示:

四.那你知道HTTPS会有什么样的不安全的问题吗?

4.1 中间人攻击

4.1.1 中间人攻击背景分析

如果CA机构不颁发证书,任何人都可以制作证书,此时就缺少对证书的验证,所以客户端发起的是 HTTPS 请求,但客户端完全不知道自己的网络已被拦截,传输内容被中间人全部窃取。那么就会出现中间人攻击的问题,足以可见有一个权威认证机构的好处。

4.1.2 中间人攻击具体过程

  1. A服务器本地请求被劫持,所有请求均发送到中间人C的服务器
  2. 中间人C服务器返回中间人C自己的证书
  3. A客户端创建随机数,通过C中间人证书的公钥对随机数加密后传送给C中间人,然后凭随机数构造对称加密对传输内容进行加密传输
  4. 中间人C因为拥有客户端的随机数,可以通过对称加密算法进行内容解密
  5. 中间人客户端C的请求内容再向正规网站B发起请求
  6. 因为中间人C与正规网站服务器B的通信过程是合法的,正规网站B通过建立的安全通道返回加密后的数据
  7. 中间人C凭借与正规网站B建立的对称加密算法对内容进行解密
  8. 中间人C通过与客户端A建立的对称加密算法对正规内容返回的数据进行加密传输
  9. 客户端A通过与中间人C建立的对称加密算法对返回结果数据进行解密

4.2 HTTPS一定是安全的吗?

4.2.1 HTTPS协议中本地随机数可能被盗取

4.2.1.1 本地随机数被盗取

证书验证是采用非对称加密实现,但是传输过程是采用对称加密,而其中对称加密算法中重要的随机数是由本地生成并且存储于本地的HTTPS

4.2.1.2 如何保证随机数不会被窃取?

其实 HTTPS 并不包含对随机数的安全保证,HTTPS保证的只是传输过程安全,而随机数存储于本地,本地的安全属于另一安全范畴,应对的措施有安装杀毒软件、反木马、浏览器升级修复漏洞等。

4.2.2 HTTPS是会被抓包的

HTTPS协议会被抓包,HTTPS 只防止用户在不知情的情况下通信被监听,如果用户主动授信,是可以构建“中间人”网络,代理软件可以对传输内容进行解密。

4.2.2.1 如何防止HTTPS被抓包

HTTPS可以防止用户在不知情的情况下通信链路被监听,对于主动授信的抓包操作是不提供防护的,因为这个场景用户是已经对风险知情。要防止被抓包,需要采用应用级的安全防护,例如采用私有的对称加密,同时做好移动端的防反编译加固,防止本地算法被破解。

五.HTTP协议和HTTPS协议的区别?

  1. 端口号 :HTTP 默认是 80,HTTPS 默认是 443。
  2. URL书写格式 :HTTP 的 URL 前缀是 http://,HTTPS 的 URL 前缀是 https://。
  3. 安全性:HTTP 协议运行在 TCP 之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。HTTPS 是运行在 SSL/TLS 之上的 HTTP 协议,SSL/TLS 运行在 TCP 之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。
  4. 耗费资源:HTTPS安全性高,但耗费更多服务器资源;HTTP安全性低,仅需要少量的服务器资源。

六.总结

当前看完了这篇文章,我们一起闭上眼睛仔细的想一想学会了哪些东西?看看你是否能回想起来。
这篇文章我们一起学习了如下的知识:

  1. HTTP协议你知道吗?通过的过程是什么样的?
  2. HTTPS协议吗?HTTPS通信过程能讲讲吗? SSL/TLS 加密原理?
  3. HTTPS会有什么样的不安全的问题吗?中间人攻击、本地加密对儿丢失、如果HTTPS授信登陆后会被抓包
  4. HTTP协议和HTTPS协议的区别?

内容不在多、而且于精、在于分类,在于我们分类整理之后对于整个知识体系的把控,这个是更加重要的,就好比我们该房子,先有构想,在画图纸,最后实操,整个过程形如流水,你自己也会感觉很舒服,给别人也会一种及其舒适的感觉。加油,相信自己,你一定可以的。

最后,想送给大家一句话。此刻你累了,就放松休息一下,调整一下状态,继续前行,因为时间不等人,你在成长,需要去承担起整个家庭更多的责任。坚持一点,在坚持一点。加油!

我是硕风和炜,我们下篇文章见哦!

目录
打赏
0
2
1
0
113
分享
相关文章
利用HTTP POST协议实现简单的RPC协议,并使用WireShark进行抓包分析
通过这种方式,我们可以利用HTTP POST实现简单的RPC协议,并使用WireShark进行抓包分析。这种方式简单易懂,实用性强,可以应用于各种网络编程场景。
37 16
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
59 22
|
18天前
|
网络问题解析:如何解决CondaHTTPError HTTP 000 CONNECTION FAILED错误。
以上就是斯诺普为你准备的解决Conda出现HTTP连接错误的手术室。希望这辆小车可以顺利驶出棘手的泥潭,再次在自由的大路上疾驰。一切的尝试和努力,只为更好的探索与开发。
70 17
|
17天前
|
如何克服HTTP协议的无状态问题
总的来说,如何克服HTTP协议的无状态性,就是通过某种方式,让服务器或客户端“记住”一些信息。这其中,Cookie和Session是最经常使用的两种方式,其他的根据具体的应用场景来选择。
50 10
开发效率翻倍!Apipost这些协议调试秘籍,从HTTP到金融报文全搞定
Apipost是一款强大的API研发管理工具,支持多种协议与数据格式,包括HTTP(s)、WebSocket、SSE、gRPC、TCP及金融协议(如ISO 8583、FIX)。它内置国密算法库,提供HTTP文件秒传、全局参数配置等实用功能。在SSE调试中,可轻松处理AI模型流式响应;WebSocket与Socket.IO实现高效实时通信;GraphQL支持可视化Query编写;TCP模块解决金融报文编码难题;gRPC则具备服务反射与流式调试能力。Apipost不仅简化了多协议切换的复杂性,还自动生成文档,显著提升开发效率,让开发者专注于核心业务逻辑。
掌握网络通信协议和技术:开发者指南
本文探讨了常见的网络通信协议和技术,如HTTP、SSE、GraphQL、TCP、WebSocket和Socket.IO,分析了它们的功能、优劣势及适用场景。开发者需根据应用需求选择合适的协议,以构建高效、可扩展的应用程序。同时,测试与调试工具(如Apipost)能助力开发者在不同网络环境下优化性能,提升用户体验。掌握这些协议是现代软件开发者的必备技能,对项目成功至关重要。
智能体竟能自行组建通信网络,还能自创协议提升通信效率
《一种适用于大型语言模型网络的可扩展通信协议》提出创新协议Agora,解决多智能体系统中的“通信三难困境”,即异构性、通用性和成本问题。Agora通过标准协议、结构化数据和自然语言三种通信格式,实现高效协作,支持复杂任务自动化。演示场景显示其在预订服务和天气预报等应用中的优越性能。论文地址:https://arxiv.org/pdf/2410.11905。
55 6
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
119 11
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等