一、网络分层与URL流程

1. 模型掌握
  • TCP/IP四层模型

    层级功能 & 协议
    应用层提供应用接口(HTTP、DNS、FTP)
    传输层端到端传输(TCP可靠、UDP快速)
    网络层路由与寻址(IP、ICMP)
    网络接口层链路传输(以太网、WiFi,含物理层+数据链路层)
  • OSI七层(辅助理解,对比记忆):物理层→数据链路层→网络层→传输层→会话层→表示层→应用层(重点记前四层与TCP/IP的对应)。

2. DNS执行原理
  • 流程:本地缓存(浏览器→系统)→ 本地DNS服务器(递归查询)→ 根服务器→顶级域名服务器→权威域名服务器(迭代查询)→ 返回IP。
  • 协议选择:解析用 UDP(速度快,域名查询数据量小);区域传送(主从DNS同步数据)用 TCP(可靠,数据量大)。
3. 浏览器输入网址的过程(高频题,按步骤答):
  1. DNS解析:域名→IP(如上流程)。
  2. TCP连接:三次握手(SYN→SYN+ACK→ACK)建立连接。
  3. HTTP请求:发送请求报文(方法、URL、请求头、请求体)。
  4. 服务器响应:返回响应报文(状态码、响应头、响应体)。
  5. 资源加载:解析HTML,请求CSS/JS/图片等静态资源(长连接下复用TCP连接)。

二、TCP/UDP

1. TCP与UDP的区别
维度TCP(如文件下载)UDP(如视频通话)
连接性面向连接(三次握手)无连接(直接发)
可靠性可靠(确认、重传、排序)不可靠(丢包不管)
传输单位字节流(无边界,有序)数据报(有边界,无序)
拥塞控制有(慢启动、拥塞避免)
2. 三次握手 & 四次挥手
  • 三次握手(建立连接)

    • 客户端→服务端:SYN(同步序列号,seq=x)
    • 服务端→客户端:SYN+ACK(seq=y,ack=x+1)
    • 客户端→服务端:ACK(ack=y+1)
      为什么三次? 双向确认“双方能发能收”:若两次,服务端无法确认客户端是否能接收自己的SYN+ACK(比如客户端的ACK丢包,服务端会一直重发)。
  • 四次挥手(关闭连接)

    • 主动方→被动方:FIN(seq=u,不再发数据)
    • 被动方→主动方:ACK(ack=u+1,先确认,可能还在发数据)
    • 被动方→主动方:FIN(seq=v,自己也不发了)
    • 主动方→被动方:ACK(ack=v+1)
      为什么四次? 被动方收到FIN后,可能还有未发完的数据,需先ACK确认,再发自己的FIN,故分两步;而三次握手是“同步序列号”,可合并SYN和ACK。
3. TCP可靠传输的机制
  • 序列号+确认应答:保证数据有序、不丢包。
  • 超时重传:未收到ACK则重发。
  • 滑动窗口:流量控制(接收方告知窗口大小,避免对方处理不过来)。
  • 拥塞控制:慢启动、拥塞避免(避免网络拥塞)。
  • 校验和:检测报文是否损坏。
4. 长连接与短连接
  • 短连接:一次HTTP请求-响应后,立即关闭TCP连接(HTTP/1.0默认)。
  • 长连接:TCP连接复用,可发多次HTTP请求-响应(HTTP/1.1默认,通过 Connection: keep-alive 维持)。

三、HTTP及扩展

1. HTTP与HTTPS的区别
维度HTTPHTTPS
传输明文(易窃听、篡改)SSL/TLS加密(安全)
端口80443
性能无加密开销,速度快握手耗时长,需解密
证书需CA签发的数字证书(防冒充)
2. HTTP版本(1.0→1.1→2.0)
  • 1.0:默认短连接,每次请求新建TCP,效率低。
  • 1.1:默认长连接(keep-alive),管线化(批量发请求,但仍有 队头阻塞:一个请求卡壳,后续请求也卡)。
  • 2.0:二进制帧、多路复用(同一连接并行发请求,解决队头阻塞)、头部压缩(HPACK)、服务器推送。
    迭代原因:解决性能瓶颈(如1.1的连接复用但队头阻塞,2.0优化传输效率)。
3. WebSocket
  • 是什么:基于HTTP握手的全双工协议(客户端和服务端可双向实时发消息,如聊天、股票行情)。
  • 核心:握手阶段用HTTP(Upgrade: websocket),之后脱离HTTP,复用TCP连接。
4. HTTPS的机制(SSL/TLS握手)(分步骤答):
  1. 客户端Hello:发支持的加密套件(如ECDHE)、随机数(Client Random)。
  2. 服务端Hello:选加密套件,发随机数(Server Random)、数字证书(含公钥、域名、CA签名)。
  3. 客户端验证证书:检查有效期、域名匹配、CA信任链,生成预主密钥,用服务端公钥加密发送(ECDHE则交换公钥参数,实现前向安全)。
  4. 服务端解密:用私钥解预主密钥,结合双方随机数,生成会话密钥(对称加密,速度快)。
  5. 后续通信:用会话密钥加密数据,双向传输。
5. Cookie、Session、Token(对比记忆):
类型存储位置特点 & 问题适用场景
Cookie客户端(浏览器)易被劫持,存储量小(4KB)简单会话标识(如SessionID)
Session服务端(内存/DB)依赖Cookie传ID,集群需共享(如Redis)服务端需存状态的场景
Token客户端(LocalStorage等)无状态,服务端验签名(如JWT)前后端分离、跨域场景

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96931.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96931.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/96931.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lanczos算法的核心——Ritz向量的计算(主要思想为反向映射)

在 Lanczos 算法中,“将得到的特征向量映射回原始空间(即乘以V)得到的近似特征向量” 这一步,通常是指在三对角矩阵(T)的特征向量求解完成后,将其转换回原始矩阵(A)的特征…

Verilog功能模块--SPI主机和从机(03)--SPI从机设计思路与代码解析

前言 上一篇文章介绍了Verilog功能模块——SPI主机,包括主机设计思路与使用方法。 本文则用纯Verilog设计了功能完整的4线SPI从机,与网上一些以高频率clk时钟模拟从机不同,本文中的SPI从机工作时钟来源于主机的sclk,符合SPI同步…

【Big Data】Hadoop YARN 大数据集群的 “资源管家”

Apache Hadoop YARN(Yet Another Resource Negotiator)是Hadoop生态系统中的核心资源管理框架,通过解耦资源管理和任务调度,提供了一个通用的分布式计算资源调度平台,使Hadoop从单一的MapReduce框架演进为支持多种计算…

【计组】总线与IO

总线同步定时方式采用公共时钟信号协调发送方和接收方的传送异步定时方式采用握手信号来实现定时控制不互锁对于主设备:请求,隔一段时间自动撤销请求对于从设备:回答,隔一段时间自动撤销回答半互锁对于主设备:请求&…

技术速递|Model Context Protocol (MCP) 支持已上线 JetBrains、Eclipse 和 Xcode

模型上下文协议(MCP)与 GitHub Copilot 的集成现已全面支持 JetBrains、Eclipse 和 Xcode!MCP 使 GitHub Copilot 能够与外部工具和数据源集成,从而提升更深入的上下文感知能力和编码智能。 借助 JetBrains、Eclipse 和 Xcode 中…

深入浅出理解支持向量机:从原理到应用,解锁分类算法的核心密码

​​​​在机器学习的广阔领域中,分类算法犹如一个个精准的 “决策官”,帮助我们从海量数据中挖掘规律、做出判断。而在众多分类算法里,支持向量机(Support Vector Machine,简称 SVM)凭借其出色的泛化能力、…

相关法律、法规知识(五)

一、著作权法:软件知识产权风险条款核心要求召回风险场景软件著作权归属(11)委托开发软件无书面合同 → 著作权归受托方代工生产的设备预装未授权软件 → 侵权诉讼 → 强制下架召回(如工业PDA盗用第三方代码)侵权行为&…

PWM控制实现呼吸灯

一.呼吸灯原理 呼吸灯指灯光的亮度随着时间由暗到亮逐渐增强,再由亮到暗逐渐衰减,很有节奏感地一起一伏,就像是在呼吸一样,被广泛应用于手机、电脑、电视等电子设备的指示灯中。 通过调节PWM占空比实现呼吸灯效果。通过调节定…

MySQL LIKE查询终极指南:模糊匹配的利刃与性能深渊

引言 LIKE是MySQL中最强大的模糊匹配操作符,也是性能陷阱最多的查询之一。本文将系统解析其高效使用方法,通过实测数据揭示不同场景下的性能表现,并提供企业级优化方案。一、基础语法与通配符解析 1.1 四种匹配模式详解 -- 前缀匹配&#xff…

开发者工具与效率提升指南

开发者工具与效率提升指南介绍 在软件开发过程中,选择适当的开发工具和配置优化是提升效率的关键。本指南旨在提供关于常用开发工具、IDE配置、自动化流程及效率脚本的全面资源与建议,以帮助开发者更高效地进行编码和项目管理。 开发工具和IDE配置 常用开…

Python 轻量级的 ORM(对象关系映射)框架 - Peewee 入门教程

文章目录基础创建数据库管理对象定义自己的模型连接数据库并创建表插入数据查询数据更新数据删除数据进阶复合主键模型示例复杂查询示例(以Relation模型为例)基础 创建数据库管理对象 from peewee import *db MySQLDatabase(test_db, userroot, passwordpassword, hostlocal…

《Java反射与动态代理详解:从原理到实践》

1. 反射(Reflection) 1.1 反射的概述 反射是Java语言的核心特性之一,它允许程序在运行状态下动态获取类的信息并操作类的成员(构造方法、成员变量、成员方法)。 专业定义 对于任意一个类,都能够知道这个类的…

golang7 数组切片

本视频详细讲解了Go语言中的集合类型数据结构,重点介绍了数组、切片、map和list四种集合类型。特别强调了切片和map的重要性,以及它们在实际开发中的应用。同时,详细阐述了数组的定义、操作及其与切片之间的区别,包括数组类型与元…

k8s-容器化部署论坛和商城服务(小白的“升级打怪”成长之路)

目录 一、配置文件编写 1、数据持久化 2、mysql主从复制 3、php解析环境 4、nginx服务 5、redis主从复制 6、tomcat服务 7、操作命令 8、在每个node节点操作上 9、更改服务文件加入redis缓存和实现访问动静分离 在存储主机上查看 10、更改商城应用文件 二、实现域…

智慧AI消防通道占用检测在危险区域的应用

智慧AI消防通道占用检测:构建工厂与仓库的安全防线在工业生产与物流仓储领域,工厂安全与仓库安全始终是企业运营的核心命题。消防通道作为紧急情况下的“生命通道”,其畅通性直接关系到人员疏散效率与火灾扑救效果。然而,传统人工…

LangGraph-2-Demo

状态:一个共享数据结构,表示应用程序的当前快照。它可以是任何 Python 类型,但通常是 TypedDict 或 Pydantic BaseModel。 节点:Python 函数,用于编码代理的逻辑。它们以当前 状态 作为输入,执行一些计算或…

基于硅基流动API构建智能聊天应用的完整指南

基于硅基流动API构建智能聊天应用的完整指南 一、引言:AI编程工具重塑开发范式 人工智能编程工具正在彻底改变软件开发的方式,使开发者能够快速构建以前需要大量专业知识的复杂应用。本文将深入探讨如何使用硅基流动(SiliconFlow)的API,结合…

深入解析MyBatis中#{}和${}的区别与应用场景

在MyBatis框架的使用过程中,SQL映射文件的编写是核心工作之一。而#{}和${}这两种参数占位符语法,虽然看起来相似,却有着本质的区别。正确理解和使用它们,不仅关系到应用程序的安全性,还会影响系统性能。本文将全面剖析…

ELKB日志分析平台 部署

ElasticSearch ELKB 日志分析 介绍 docker-compose一键部署ELK(elasticsearchlogstashkibana) 以下是使用 Docker Compose 部署 Elasticsearch、Logstash、Kibana 和 Beats(以 Filebeat 为例) 的完整方案,涵盖配置文件、关键参数说明及部署步…

File IO 字节流 | Java 学习日志 | 第 12 天

File 1.概述 File表示路径,可以表示文件和文件夹,可以存在也可以不存在 相对路径(相对当前项目),绝对路径。 构造方法File(file/string),File(file/string,string)。 public static void main(String[] ar…