10.9 Rewrite原理
- Rewrite 通过正则表达式的使用改变URI(相对),可以同时存在一个或者多个指令,按照顺序依次对URL进行匹配和处理
- Rewrite 接受到的URI不包含host地址
- Rewrite介绍
- Rewrite是Nginx服务器提供的一个重要基本功能,其在Web服务器产品中几乎是必备的功能,用于实现URL的重写
- URL的重写是非常有用的功能,
- 地址重写 和 地址转发
- 地址重写 实际上是为了解决地址标准化
- 地址标准化
- 举个例子,比如在访问百度首页的时候,我们在地址中可以输入www.baidu.com,也可以输入
- www5.baidu.com www.baidu.com.cn www.baidu.cn baidu.com
- 他们都能准确的指向www.baidu.com
- 如果我们ping就会发现地址不同,我们可以在命令行测试下
- 在客户端看来,baidu首页同时对应了几个地址,实际上baidu服务器是在不同的地址中选择了确定的一个,www.baidu.com,进而返回服务器响应的,
- 这个过程就是地址标准化的过程,baidu.com这个地址在服务器中被改编为www.baidu.com的过程就是地址重定向的过程
- 地址转发(反向代理)
- 转发的概念最初和网页的访问并没有太大关系,它是指网络数据传输过程中数据分组到达路由器后该设备通过检查分组地址并将数据转到相邻局域网上的过程
- 后来该概念被用在了网页访问中,就出现了地址转发这一说法,是指一个域名指到另一个已有站点的过程
- 地址重写和地址转发的几点区别
- 地址转发后客户端浏览器地址栏的地址的显示是不改变的,而地址重写后客户端浏览器地址栏中的地址改编为服务器选择确定的地址
- 在一次地址转发整个过程中,只产生一次网络请求,而一次地址重写一般会产生两次请求
- 地址转发一般发生在同一站点的项目内,而地址重写没有该限制
- 地址转发到的页面可以不用全路径名表示,而地址重写到的页面必须使用完整的路径名表示
- 地址转发过程中,可以将客户端请求的request范围内属性传递给新的页面,但地址重写不可以
- 地址转发的速度较地址重写快
10.9 Rewrite原理的更多相关文章
- Java多线程系列--“JUC锁”10之 CyclicBarrier原理和示例
概要 本章介绍JUC包中的CyclicBarrier锁.内容包括:CyclicBarrier简介CyclicBarrier数据结构CyclicBarrier源码分析(基于JDK1.7.0_40)Cyc ...
- Java-二进制转10进制原理机制
任何文件在计算机储存时都是以二进制储存的,由 1和0 组成,如: 101010101010100111110100101010 现在有一组二进制数据: 10010110 那么他转成10进制是多少呢(我 ...
- 机器学习实战(Machine Learning in Action)学习笔记————10.奇异值分解(SVD)原理、基于协同过滤的推荐引擎、数据降维
关键字:SVD.奇异值分解.降维.基于协同过滤的推荐引擎作者:米仓山下时间:2018-11-3机器学习实战(Machine Learning in Action,@author: Peter Harr ...
- 2017.10.18 微机原理与接口----汇编语言语法和DOS功能调用
4.1 汇编语言中的基本数据 ·标识符 ·常数 ·变量具有三个属性: (1)段地址(SEG):变量所在段的段地址 (2)偏移地址(OFFSET):变量所在段内的偏移地址 (3)类型(TYPE):每个变 ...
- 一篇文章说透Nginx的rewrite模块
rewrite模块即ngx_http_rewrite_module模块,主要功能是改写请求URI,是Nginx默认安装的模块.rewrite模块会根据PCRE正则匹配重写URI,然后发起内部跳转再匹配 ...
- Java多线程系列--“JUC锁”11之 Semaphore信号量的原理和示例
概要 本章,我们对JUC包中的信号量Semaphore进行学习.内容包括:Semaphore简介Semaphore数据结构Semaphore源码分析(基于JDK1.7.0_40)Semaphore示例 ...
- 《精解Windows 10》
<精解Windows 10>全面深入讲解Windows 10操作系统的使用方法.本书共计14章内容.第一章简述Windows 10操作系统的一些变革:第二章介绍Modern 2.0界面的体 ...
- 成为Android高手必须掌握的28大项内容和10个建议
(一)成为Android高手必须掌握的8项基本要求 [1] Android操作系统概述1. Android系统架构. 2. Android利用设计理念. 3. ...
- 9. 图解分析Redis的RDB和AOF两种持久化机制的原理
1.RDB和AOF两种持久化机制的介绍 2.RDB持久化机制的优点3.RDB持久化机制的缺点4.AOF持久化机制的优点5.AOF持久化机制的缺点6.RDB和AOF到底该如何选择 我们已经知道对于一个企 ...
随机推荐
- Float浮动(慕课网学习笔记)
float浮动 属性:值 意义 float:left 左浮动 float:right 右浮动 float:none 不浮动 float:inherit 继承父元素浮动属性,若父元素没有浮动属性则失效 ...
- Python的dict
dict把key和value关联起来,可以通过 key来查找 value. 花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可.最后一个 key: value 的逗号可以 ...
- mzy git学习,删除文件(三)
删除一个文件(工作区删除,并且在本地版本库中也删除) 第一种方式: rm test.txt 先删除工作区的test.txt git add test.txt (我的理解是,将删除test.txt这个动 ...
- Go版本管理--依赖包存储
目录 1. 简介 2. GOPATH 依赖包存储 3.GOMODULE 依赖包存储 4.包名大小写敏感问题 1. 简介 GOPATH模式下,依赖包存储在$GOPATH/src,该目录下只保存特定依赖包 ...
- IT项目经理-成长手记学习笔记
无论多难,都要记住一点,只要别人不赶你走,你就厚着脸皮待下去,这样你才有可能熬到项目成功. 项目经理要管事,更要管人. 项目计划->职责分工->确定项目范围 遇事及时处理,当场处理,处理错 ...
- SQLServer数据实时同步PostgreSQL
SQLServer数据实时同步至PostgreSQL 前言: 为迎合工作需求有时候传送的数据保存在SQLServer中但由于工作需要需要保存到PostgreSQL中进行处理,本文主要通过在SQLSer ...
- .NET 5 支持 Azure Functions OpenAPI 扩展啦
今年5月,在 Build大会上,Azure FunctionsOpenAPI的功能支持(预览版)正式宣布. 当时,它最高支持 v3 运行时--.NET Core 3.1 版本. 最近,它发布了 .NE ...
- springMVC学习总结(三) --springMVC重定向
根据springMVC学习总结(一) --springMVC搭建搭建项目 在com.myl.controller包下创建一个java类WebController. 在jsp子文件夹下创建一个视图文件i ...
- DPDK应用示例指南简介(汇总)
DPDK应用示例指南简介 <DPDK示例>系列文章主要是学习.记录.翻译DPDK官方示例文档.为了更好地理解和学习DPDK, 特通过对源码中的经典示例进行整理,供大家学习.交流和讨论. A ...
- 什么是内存屏障? Why Memory Barriers ?
要了解如何使用memory barrier,最好的方法是明白它为什么存在.CPU硬件设计为了提高指令的执行速度,增设了两个缓冲区(store buffer, invalidate que ...