当前位置: 首页 > news >正文

[转发和重定向] 的核心定义

重定向和转发

不废话:

“转发” 的核心定义:

服务端内部主导跳转、客户端无感知(仅 1 次请求)、浏览器 URL 不改变,与传统 Web 开发中 “转发” 的本质逻辑完全一致,只是实现载体(Nginx 路由层 vs 上层业务框架)不同,不影响其 “转发” 的属性归属。

“重定向”核心定义:

服务端触发信号、客户端执行二次/多次请求跳转、浏览器 URL 必然更新,与所有场景下 “重定向” 的本质逻辑完全一致,只是实现载体(Nginx 指令 vs 后端应用响应)不同,不影响其 “重定向” 的属性归属。

关于nginx的一些概念命题:

命题编号 命题内容 是非判断 核心依据
1 转发是服务端行为,重定向是客户端行为 转发:服务端接收请求后,直接在内部“跳转”到目标资源,全程客户端(浏览器)无感知,仅1次请求;
重定向:服务端返回3xx状态码+目标URL,客户端接收到响应后,主动发起第2次请求到新URL,本质是“客户端执行跳转”。
2 重定向会改变用户的浏览器URL 重定向的核心是客户端根据服务端返回的新URL重新请求,浏览器会将地址栏更新为“新请求的URL”(例如从/a重定向到/b,地址栏会显示/b)。
3 Nginx的return和rewrite都是属于重定向 rewrite指令不必然是重定向:
- 若rewrite后通过last/break在Nginx内部完成资源匹配(未触发3xx状态码),属于“内部转发行为”,不是重定向;
- 只有当rewrite后通过redirect/permanent显式返回3xx状态码时,才属于重定向;
return指令(如return 302 /new)必然返回3xx状态码,属于重定向,但“rewrite都是重定向”的表述错误,导致整个命题不成立。
4 rewrite是内部行为,不会改变用户浏览器的URL rewrite的行为分两种:
- 若rewrite触发redirect/permanent(重定向),则会改变浏览器URL;
- 若rewrite仅内部匹配(如rewrite ^/a /b last;),才是内部行为、不改变URL;
命题将rewrite“绝对化”为“内部行为”,忽略了其可触发重定向的场景,因此错误。

裸辞快一年了,感觉时间很快
还是很焦虑,并没有改善很多
AI发展很快速,我自己刚开发了一款软件,目前还在app store 审核中
祝愿 万事顺遂🍀,也祝屏幕前的你万事顺遂🫰

(CSDN上这篇的作者也是我)

http://www.hskmm.com/?act=detail&tid=4362

相关文章:

  • script setup 在 Vue 3 中的核心作用及具体实现方式
  • 0voice-1.4.1-cmake
  • test test test
  • 容器化改造基本原理
  • Blogroll 友链
  • Java 字节码与 ASM 框架实战解析
  • 计算机大数据毕业设计选题:基于Spark+hadoop的全球香水市场趋势分析系统 - 详解
  • Dos的常用命令
  • 持续集成自动化CI/CD
  • Lightroom Classic 2025(LRC 2025)安装教程(附直接安装包下载)+入门操作指南
  • 2025/09/14 【二叉树11】完全二叉树的节点个数
  • 8888
  • 接口限流代码 - 实践
  • OutGuess 安装与问题排查指南(Kali Linux 环境)
  • 拓展操作码举例
  • TryHackMe | Cicada-3301 Vol:1
  • 完整教程:Word添加图/表题注
  • [MCP][01]简介与概念
  • CF819B Mister B and PR Shifts
  • 第一次自我介绍
  • 在Linux环境部署Flask应用并启用SSL/TLS安全协议
  • 0127_责任链模式(Chain of Responsibility)
  • 洛枫娜娜米讨厌数学……?
  • Spatial 语言核心概念简介
  • Redis数据库的五类核心数据结构
  • RAG 个人知识库 向量查找原理
  • css-1
  • Java-JDK8新特性
  • 解决MySQL ONLY_FULL_GROUP_BY 错误的方案
  • 博客园美化