http

一、HTTP 基础概念
全称:超文本传输协议(HyperText Transfer Protocol),是 Web 服务的核心通信协议。
默认端口:HTTP 明文协议默认端口 80,HTTPS 加密协议默认端口 443。
核心作用:定义客户端(浏览器 / 工具)与服务器之间 ** 请求 (Request)- 响应 (Response)** 的交互规则,处理数据的请求与返回。
核心关键词:
Request(请求):客户端发起的访问行为,如打开网页、提交表单、下载资源。
Response(响应):服务器处理请求后返回的结果,如网页内容、图片、状态码。
常用测试工具:
curl:命令行 HTTP 工具,可查看请求 / 响应详情,示例:curl -v www.baidu.com(-v 参数显示完整交互过程)
wget:用于下载网页或文件,示例:wget www.baidu.com
二、HTTP 请求包(Request)详解

  1. 请求包完整结构
    请求初始行
    请求头字段
    请求空行
    请求体(仅POST等带数据的请求存在)
    1)核心:HTTP 状态码
    状态码分为 5 大类,代表服务器对请求的处理结果:
    | 状态码分类 | 含义 | 常见示例 |
    | ----- | ---------- | -------------------------------------------- |
    | 2xx | 请求成功 | 200 OK:访问正常 |
    | 3xx | 重定向 / 缓存相关 | 301永久跳转、302临时跳转、304资源未修改(使用浏览器缓存) |
    | 4xx | 客户端错误 | 401认证失败、403权限拒绝、404资源不存在、405请求方法不允许、413请求体过大 |
    | 5xx | 服务器错误 | 500服务器内部错误、502网关错误、503服务不可用、504网关超时 |
    (2)响应头核心字段
    | 字段 | 作用 | 示例 |
    | ----------------- | -------------------- | -------------------------------------- |
    | Server | 标识服务器使用的 Web 服务软件及版本 | Server: nginx/1.20.1 |
    | Content-Type | 说明响应体的媒体类型(MIME 类型) | Content-Type: text/html; charset=utf-8 |
    | Content-Length | 响应体的大小(字节数) | Content-Length: 1024 |
    | Location | 重定向时,指定跳转的目标地址 | Location: https://www.baidu.com |
    | Via/Cache-Control | 标识响应是否经过 CDN 缓存 | Via: cache.baidu.com |
    四、HTTP 各版本对比
    目前主流使用 HTTP/1.1 和 HTTP/2.0,HTTP/3.0(QUIC)正在普及:
    | 版本 | 连接方式 | 加密支持 | 底层协议 | 核心特点 |
    | -------------- | -------------------------------- | ---------------------- | ---- | -------------------------------- |
    | HTTP/1.0 | 短连接(每次请求新建连接,响应后立即断开) | 无强制要求 | TCP | 资源消耗大,性能差,已淘汰 |
    | HTTP/1.1 | 长连接(Keep-Alive,复用 TCP 连接,减少握手开销) | 支持 HTTP(80)/HTTPS(443) | TCP | 支持管道化,但存在队头阻塞,单域名并发有限(默认 6 个) |
    | HTTP/2.0 | 多路复用(单条 TCP 连接并行处理多个请求) | 默认基于 HTTPS | TCP | 头部压缩、服务器推送,大幅提升并发性能 |
    | HTTP/3.0(QUIC) | 基于 UDP 的连接,内置 TLS 加密 | 强制加密 | UDP | 解决 TCP 队头阻塞,弱网环境表现好,适合流媒体 / 实时通信 |
    补充:常用测试命令
    查看完整请求 / 响应过程:curl -v www.baidu.com
    仅查看响应头(测试服务器状态):curl -I www.baidu.com
    模拟 POST 请求:curl -X POST -d "username=admin&password=123" http://example.com/login

一、CDN 是什么
CDN:内容分发网络。简单说:把网站静态资源,提前放到全国各地的边缘节点服务器上缓存起来。
二、CDN 缓存是什么
就是:把网站的图片、JS、CSS、视频、静态网页这些不常变的文件,复制一份存到就近的 CDN 节点服务器。
用户访问时:不用跑到源站服务器拿资源,直接从离自己最近的 CDN 缓存节点取。
三、举个例子
源站在广州,你在陕西:

没 CDN:你要从广州拉图片,距离远、慢、容易卡
有 CDN 缓存:图片早就缓存到西安节点,你直接从西安拿,秒加载

四、CDN 缓存作用

访问变快:就近取资源,延迟低
减轻源站压力:大部分请求都被 CDN 缓存扛了,源站不用扛大量流量
抗攻击:隐藏真实源站 IP,避免被直接打
省带宽:源站流出流量大幅减少

五、哪些资源会被 CDN 缓存

图片:jpg、png、gif
静态文件:css、js、html
视频、安装包、压缩包

六、什么时候不缓存
经常变的动态内容:登录接口、实时数据、后台接口,一般不做 CDN 缓存。
一句话总结:CDN 缓存就是把网站静态文件提前存在各地就近服务器,用户就近访问,更快、更稳、减轻源站压力。
一、URI 基础概念

  1. 定义
    统一资源标识符(Uniform Resource Identifier,URI),是 HTTP 中所有 “资源” 的通用标识方式,它的核心作用是唯一标识一个资源。
  2. 组成关系
    URI 包含两种形式:
    URL(统一资源定位符):通过地址定位资源(我们常说的网址)
    URN(统一资源名称):通过名称 / 命名空间标识资源(如书籍的 ISBN)
    简单理解:URI 是总类,URL 和 URN 都是 URI 的子集。
    二、URN(统一资源名称)
  3. 定义
    仅用于命名 / 标识资源,不提供访问地址,依靠特定命名空间保证唯一性。
  4. 典型示例
    urn:isbn:9780141036144:标识书籍《1984》的 ISBN
    urn:ietf:rfc:7230:标识 HTTP/1.1 规范的 RFC 文档
    三、URL(统一资源定位符)
  5. 定义
    统一资源定位符(Uniform Resource Locator),即我们常说的 “网页地址”,是 URI 的一种,它通过具体的地址直接定位并访问资源。
  6. 组成结构(完整示例)
    http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument
    各部分从左到右依次为:协议、主机、端口、路径、查询、片段。
  7. 各部分详解
    (1)协议(Scheme)
    作用:告诉浏览器使用什么协议访问资源
    常见协议:
    表格
    协议 描述
    http/https 超文本传输协议 / 安全版本(Web 核心协议)
    ftp 文件传输协议
    mailto 邮件协议,触发邮件客户端
    ssh 安全远程登录协议
    ws/wss WebSocket 协议 / 加密版本
    file 本地文件协议
    data 内联数据 URI(如图片 base64)
    (2)主机(Host)
    形式:域名(如 www.example.com)或 IP 地址
    作用:指定要请求的服务器,域名会通过 DNS 解析为对应的 IP 地址。
    (3)端口(Port)
    作用:指定服务器上的应用端口,不同端口对应不同服务
    常见默认端口:
    HTTP:80
    HTTPS:443
    FTP:21
    SSH:22
    注意:使用默认端口时,URL 中可以省略端口号。
    (4)路径(Path)
    形式:服务器上资源的目录路径,如 /path/to/myfile.html
    作用:指定服务器上具体的资源位置,相当于服务器的 “文件目录”。
    (5)查询(Query)
    形式:?key1=value1&key2=value2
    作用:向服务器传递参数,多个参数用 & 分隔
    示例: https://developer.mozilla.org/en-US/search?q=URL ,q=URL 表示搜索关键词为 “URL”。
    (6)片段(Fragment)
    形式:#SomewhereInTheDocument
    作用:页面内的锚点 / 书签,如 HTML 文档的章节、视频的时间点
    关键特性:片段部分永远不会发送到服务器,仅由浏览器本地处理。
    四、核心总结
    URI 是资源的通用标识,URL(可定位)和 URN(仅命名)都是 URI 的实现形式。
    URL 由 6 部分组成:协议://主机:端口/路径?查询#片段,各部分各司其职。
    端口默认值可省略,片段仅在浏览器端生效,不参与服务器请求。
posted @ 2026-08-19 12:33  快乐的小xie  阅读(45)  评论(0)    收藏  举报