网址解析
网址解析(域名解析)指将域名转换为对应IP地址的过程,通过DNS系统实现,让用户方便访问网络资源,是互联网通信的基础环节。
疑问提出
有的同学或者小白在使用浏览器的使用会发现自己输入自己网站的名字会发现输入之后中间框框里面会出现http和https两个英文字母,然后后面加上一连串的英文字母,有很多小白会表示看不懂。
域名解析
有很多同学会表示自己看不懂,因为自己刚入门,有很多地方表示自己不太理解,不着急的哈,我们先把图中框框里面的内容先抠出来然后进行慢慢讲解。首先向下面的一完整的代码,我们把它称为域名,域名一般是由http或者https开头的一串简短的代码,然后再是冒号开头,然后加上两个斜杠号//。
https://www.baidu.com/
斜杠包在这里表示分开的意思,后面就是域名的主体部分,一般都是www开头,com结尾。两者中间一般是公司的简写,或者是有很明显的指向性意义的英文字母。www是万维网协议,其中com是商业后缀,这只是其中一个商业后缀,还有其他商业后缀,这在我们后面会进行讲解的。其中域名中有三个协议,是需要我们学习的,就是www万维网协议,http超文本协议,https安全超文本协议。下面我们要讲的就是三个协议
www万维网协议
万维网(WWW,World Wide Web)协议是互联网中用于发布、传输和获取超媒体资源(如网页、图片、视频等)的核心协议体系,基于客户端 - 服务器架构。客户端--服务器架构简称s/s架构,这在后来与浏览器/服务端架构简称b/s架构共同奠定了网络世界资料的一个重要的交互模式,这在我们生活中有很多地方都是可以了感受到的,例如我们平常使用微信和朋友聊天,浏览网站,玩游戏就是使用的b/s和c/s架构
b/s架构
*B/S 架构(Browser/Server Architecture)是一种基于互联网的分布式计算模型,用户通过浏览器(Browser)访问服务器(Server)上的资源,无需安装独立客户端软件。它是互联网应用的主流架构之一,核心特点如下:
核心组成
-
浏览器(客户端)
- 功能:负责接收用户输入、展示服务器返回的页面和数据,通过 HTTP/HTTPS 协议与服务器通信。
- 技术栈:依赖 HTML、CSS、JavaScript 实现页面渲染和交互(如表单提交、动态数据加载)。
- 优势:用户无需安装额外软件,打开浏览器即可使用(如 Chrome、Edge、Firefox)。
-
服务器(Server)
- 功能:处理业务逻辑、存储和管理数据,响应浏览器的请求并返回结果(如 HTML 页面、JSON 数据)。
- 组成:
- Web 服务器:接收请求并分发至应用服务器(如 Nginx、Apache)。
- 应用服务器:运行业务逻辑代码(如 Java、Python、Node.js)。
- 数据库服务器:存储数据(如 MySQL、Oracle、MongoDB)。
简而言之,b/s服务器最重要的就是浏览器与服务器。其中浏览器也就是我们前面讲的依赖http与https协议来进行连接与传播,其中服务器也就是我们平常自己搭建的网址,一般都是LAMP结构与LNMP结构,这两个结构我们会在后面进行讲解。
c/s结构
**C/S 架构(Client/Server Architecture)是一种经典的分布式计算模型,由客户端(Client)和服务器(Server)** 两部分组成:客户端安装在用户设备上,负责与用户交互和处理部分业务逻辑;服务器提供数据存储、业务处理等核心服务。其核心特点如下:
核心组成
核心组成
1. 客户端(Client)
◦ 功能:直接面向用户,负责接收输入、展示结果,并通过网络协议(如 TCP/IP)与服务器通信。
◦ 技术栈:需开发独立软件,依赖本地资源(如显卡、CPU)实现复杂功能(如图形渲染、数据计算)。
◦ 示例:桌面软件(如微信 PC 端、Photoshop)、游戏客户端(如《英雄联盟》)、企业专用客户端(如银行 U 盾驱动)。
2. 服务器(Server)
◦ 功能:集中管理数据和业务逻辑,响应客户端请求并返回结果(如查询数据库、文件传输)。
◦ 组成:
◦ 数据库服务器:存储核心数据(如用户信息、交易记录)。
◦ 应用服务器:处理业务逻辑(如用户认证、数据计算)。
◦ 文件服务器:提供文件存储和传输服务(如企业内部文档共享)。
工作流程
http协议
HTTP(Hypertext Transfer Protocol) 是用于传输超文本(如 HTML、JSON)的应用层协议,是互联网数据通信的基础。它基于请求 - 响应模型,允许客户端(如浏览器)与服务器之间进行无状态通信。以下是其核心特性与机制:
核心特点
-
无状态(Stateless)
- 每个请求独立处理,服务器不保留客户端的历史会话信息。
- 优势:简化服务器设计,提升处理效率;
- 缺点:需通过 Cookie、Session 等机制实现状态管理(如用户登录状态)。
-
无连接(Connectionless)
- 每次请求建立连接,响应后立即断开,不长期保持连接(HTTP/1.0)。
- 优化:HTTP/1.1 引入
Keep-Alive
允许复用连接,HTTP/2 和 HTTP/3 进一步优化传输效率。
-
简单灵活
- 请求格式简单(文本协议),支持多种数据类型(HTML、JSON、图片等)。
- 通过 URL 定位资源,通过 Headers 传递元数据(如 Content-Type、缓存控制)。
-
分层协议
- 基于 TCP/IP 协议栈,默认端口为 80(HTTP)或 443(HTTPS)。
HTTP 版本演进
-
HTTP/1.0(1996)
- 基础版本,每次请求新建连接,效率较低。
-
HTTP/1.1(1997)
- 引入持久连接(Keep-Alive)、分块传输(Chunked Transfer)、缓存控制(Cache-Control)。
- 支持请求头压缩(如 gzip)和分块传输编码。
-
HTTP/2(2015)
- 二进制分帧层(Binary Framing):提高传输效率,支持多路复用(同一连接并行处理多个请求)。
- 头部压缩(HPACK):减少冗余 Header 开销。
- 服务器推送(Server Push):主动向客户端发送资源(如 CSS、JS)。
-
HTTP/3(2022)
- 基于 QUIC 协议(替代 TCP):减少连接建立延迟,改善弱网环境下的性能。
- 解决队头阻塞(Head-of-Line Blocking)问题。
HTTP 协议是互联网的基石,其无状态、请求 - 响应模型的设计使其简单灵活,但也催生了 HTTPS、Cookie/Session 等增强技术。从 HTTP/1.0 到 HTTP/3,协议不断演进以提升性能和安全性,支撑着现代 Web 应用(如电商、社交平台、API 服务)的高效运行。
https协议
HTTPS(Hypertext Transfer Protocol Secure) 是 HTTP 的安全版本,通过加密传输和身份验证确保数据在客户端(如浏览器)与服务器之间的安全通信。其核心是在 HTTP 协议层之下引入SSL/TLS 协议层(安全套接字层 / 传输层安全),解决了 HTTP 明文传输的缺陷,广泛应用于金融交易、用户登录、敏感数据传输等场景。
HTTPS 的核心机制
HTTPS 通过以下技术实现安全通信:
1. SSL/TLS 加密层
- 作用:对 HTTP 的请求和响应数据进行加密,防止中间人攻击(MITM)、数据窃听和篡改。
- 加密流程:
- 对称加密:使用快速的对称密钥(如 AES)加密数据,但密钥传输需通过非对称加密保护。
- 非对称加密:使用公钥(公开)和私钥(服务器私有)加密传输对称密钥。
- 摘要算法:通过哈希函数(如 SHA-256)生成数据指纹,验证数据完整性(防止篡改)。
2. 数字证书与 CA 认证
- 数字证书:由权威机构(CA,Certificate Authority)签发,包含服务器公钥、域名、有效期等信息。
- 验证流程:
- 客户端请求服务器时,服务器返回数字证书。
- 客户端通过本地预装的 CA 根证书验证服务器证书的合法性(防止伪造证书)。
- 验证通过后,客户端生成随机对称密钥,用服务器公钥加密后传输给服务器。
- 服务器用私钥解密得到对称密钥,双方后续通信使用该密钥加密数据。
3. 混合加密模式
- 结合非对称加密(安全传输密钥)和对称加密(高效传输数据),兼顾安全性和性能。
HTTPS 的连接过程(TLS 握手)
- 客户端发起请求:
- 客户端发送
Client Hello
消息,包含支持的 TLS 版本、加密算法列表等。
- 客户端发送
- 服务器响应:
- 服务器返回
Server Hello
,选择 TLS 版本和加密算法,附带数字证书(含公钥)。
- 服务器返回
- 客户端验证证书:
- 验证证书是否有效(如过期、域名是否匹配、CA 是否可信),若无效则提示风险。
- 生成并传输密钥:
- 客户端生成随机预主密钥(Pre-Master Secret),用服务器公钥加密后发送给服务器。
- 双方通过预主密钥生成最终的会话密钥(对称密钥)。
- 安全通信:
- 双方使用会话密钥加密 HTTP 请求和响应,完成数据传输。
HTTPS 通过加密和认证机制解决了 HTTP 的安全缺陷,成为现代 Web 的标准配置。尽管存在性能和成本挑战,但随着硬件性能提升和免费证书普及(如 Let’s Encrypt),HTTPS 已成为保障用户数据安全的必要手段。对于开发者和企业而言,部署 HTTPS 不仅是技术选择,更是合规和用户信任的基础。