首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >变得轻松的编码模式 & HTTPS 如何工作

变得轻松的编码模式 & HTTPS 如何工作

作者头像
BUG弄潮儿
发布2025-09-02 11:45:24
发布2025-09-02 11:45:24
13500
代码可运行
举报
文章被收录于专栏:JAVA乐园JAVA乐园
运行总次数:0
代码可运行

16 种让面试变得轻松的编码模式

  • 两分技术
  • 哈希地图
  • 链表
  • 快速和慢速指针
  • 推拉窗技术
  • 二分搜索
  • 前缀总和
  • 尝试
  • 回溯
  • 动态规划
  • 贪婪的算法
  • 间隔

如何学习数据库

数据库为从网站和应用程序到企业系统的所有内容提供支持。下面是一个可以帮助您掌握数据库的学习地图:

  • 数据库基础知识

这包括“什么是数据库”、RDBMS、SQL 与 NoSQL、ACID 与 BASE、OLTP 与 OLAP、事务和隔离级别等主题。

  • 数据模型和类型

由关系数据库、非关系数据库和数据类型(整数、字符串、布尔值、日期、JSON 等)等主题组成。

  • 查询和语言这

包括 SQL 基础知识(SELECT、INSERT 等)、高级 SQL(视图、索引、CTE 等)和 NoSQL 查询(聚合和键值查找)等主题。

  • 索引和优化

包括索引(B 树、哈希和位图)、查询执行计划、非规范化与规范化、分片、连接池和查询批处理等主题。

  • 安全性、备份和扩展

这包括用户角色、权限、加密、SQL 注入、高可用性(复制和故障转移)、水平与垂直扩展等主题。

  • 工具和生态系统

包括流行的 SQL 数据库、NoSQL 数据库、GUI 工具、ORM、云数据库服务(RDS、DynamoDB、Google Cloud SQL 等)等主题。

当您在浏览器中输入 URL 时会发生什么?

  • 第 1 步

用户在浏览器中输入 URL (bytebytego .com) 并按 Enter。我们需要做的第一件事是将 URL 转换为 IP 地址。映射通常存储在缓存中,因此浏览器在多层缓存中查找 IP 地址:浏览器缓存、作系统缓存、本地缓存和 ISP 缓存。如果浏览器在缓存中找不到映射,它将要求 DNS(域名系统)解析器解析它。

  • 第 2 步

如果在任何缓存中都找不到 IP 地址,浏览器会转到 DNS 服务器进行递归 DNS 查找,直到找到 IP 地址。

  • 第 3 步

现在我们有了服务器的 IP 地址,浏览器向服务器发送 HTTP 请求。为了安全访问服务器资源,我们应该始终使用 HTTPS。它首先通过 TCP 3 路握手与服务器建立 TCP 连接。然后它将公钥发送到客户端。客户端使用公钥加密会话密钥并发送到服务器。服务器使用私钥解密会话密钥。客户端和服务器现在可以使用会话密钥交换加密数据。

  • 第 4 步

服务器处理请求并发回响应。对于成功的响应,状态代码为 200。响应中有 3 个部分:HTML、CSS 和 Javascript。浏览器解析 HTML 并生成 DOM 树。它还解析 CSS 并生成 CSSOM 树。然后它结合 DOM 树和 CSSOM 树来渲染树。浏览器向用户呈现内容和显示。

HTTPS 如何工作?

HTTPS 使用加密确保浏览器(客户端)和网站服务器之间的安全通信。

  • TCP 握手

在发生任何安全通信之前,客户端和服务器首先使用 TCP 握手过程建立基本连接。此时,数据未加密。

  • 证书检查

此阶段旨在验证服务器的身份。客户端使用提供支持的加密算法的“hello”消息启动 TLS 握手。服务器回复,选择算法并发送包含公钥的数字证书。客户端验证证书,以确保它来自受信任的证书颁发机构 (CA) 。

  • 密钥交换

客户端验证证书后,就会启动密钥交换过程。客户端使用服务器的公钥(来自证书)来加密会话密钥。加密的会话密钥被发送到服务器,服务器可以使用其私钥对其进行解密。更改密码规范消息表示从此时起,所有消息都将使用商定的会话密钥和密码进行加密。此步骤使用非对称加密来安全地交换会话密钥。

  • 数据传输

现在,双方都使用共享会话密钥切换到对称加密(更快)。消息使用相同的密钥进行加密和解密。现在,所有交换的数据都是安全和私密的。

Netflix 扩展的演变

多年来,Netflix 经历了几个成长阶段。在每个阶段,他们都必须改进扩展方法。

第 1 阶段(早期流式处理架构)

这是一个典型的 3 层,由客户端、API 和数据库组成。

该 API 应用程序被命名为 NCCP(Netflix 内容控制协议)。它是一个包含所有功能的整体应用程序。

第 2 阶段(微服务简介)

随着更多功能的添加,保持工程速度变得至关重要。为了支持这一点,单体应用程序被分解为微服务。

功能是从 NCCP 应用程序中提取的,并作为单独的应用程序进行开发,但编排逻辑仍保留在 NCCP 应用程序中。

第 3 阶段(Zuul 网关)

接下来,Netflix 拆分了应用程序。NCCP 留在那里提供播放体验,而其他 API 开始处理其他功能。

引入了 Zuul API 网关,以减少客户端和服务之间的耦合。

代码语言:javascript
代码运行次数:0
运行
复制
https://blog.bytebytego.com/p/ep174-16-coding-patterns-that-make
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BUG弄潮儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 16 种让面试变得轻松的编码模式
  • 如何学习数据库
  • 当您在浏览器中输入 URL 时会发生什么?
  • HTTPS 如何工作?
  • Netflix 扩展的演变
    • 第 1 阶段(早期流式处理架构)
    • 第 2 阶段(微服务简介)
    • 第 3 阶段(Zuul 网关)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档