目录
重定向
概念说明
重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向),可以简单理解为当我们要访问的资源不在此服务器上,那么客户端就会将请求转移到另一个服务器上去访问资源。转换请求这一部分是有客户端来完成的,用户如果不刻意查看是感觉不到的。其实是请求了两个获取到的资源,我们请求的URL地址也会发生变化。接下来让我们看看重定向的现象。
重要特点
- 重定向是一种客户端的技术,用于将请求从一个URL重定向到另一个URL。
- 重定向是通过服务器返回特定的HTTP状态码和新的URL地址,告知客户端进行新的请求。
- 重定向常用于处理URL的更改、网站的重定位、错误处理等情况。
- 重定向可以是临时的(使用302状态码)或永久的(使用301状态码),具体取决于重定向的目的和需求。
演示效果
请求的URL地址
状态码为302表示重定向的意思,可以简单的理解为该资源原本确实存在,但已经被临时改变了位置。Location首部指定的是需要将页面重新定向至的地址。一般在响应码为 3xx 的响应中才会有意义。
重定向后的URL地址
重定向原理图
反向代理
概念说明
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。在请求的过程中URL地址是不会发生变化的,第二次请求是由代理服务器去发送请求的,获取到用户想要的数据之后通过反向代理服务器返回给用户。所以给用户的感觉就是代理服务器就是目标服务器。接下来看一下配置反向代理的效果。
重要特点
- 反向代理是一种服务器端的技术,用于将客户端的请求转发到内部服务器上,并将响应返回给客户端。
- 反向代理隐藏了内部服务器的真实IP地址和细节,客户端只与反向代理进行通信。
- 反向代理可以根据请求的内容或其他规则,将请求分发给不同的内部服务器,以实现负载均衡和高可用性。
- 反向代理可以提供缓存、安全过滤、SSL加密等功能,以增强性能和安全性。
基础配置
ngixn配置文件
我们需要在服务器上的nginx服务器上添加方向代理的配置
server {
listen 80;
server_name www.wuzilong.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location /baidu/ {
proxy_pass http://www.baidu.com/;
}
}
这样我们通过访问服务器的IP地址或者用户名后面拼接baidu就可以访问到百度的页面了。
反向代理原理图
二者的区别
重定向:1.浏览器的URL地址栏发生变化
2.第二次访问由客户端进行
3.两次不同的请求
反向代理:1.浏览器URL地址栏不发生变化
2.第二次访问由服务器进行
3.同一次请求
- 反向代理是一种服务器端的技术,而重定向是一种客户端的技术。
- 反向代理是将请求从客户端转发到内部服务器,而重定向是将请求从一个URL重定向到另一个URL。
- 反向代理隐藏了内部服务器的真实细节,而重定向只是告知客户端进行新的请求。
- 反向代理可以实现负载均衡和高可用性,而重定向常用于处理URL的更改和错误处理。
- 反向代理可以提供缓存、安全过滤、SSL加密等功能,而重定向只是将请求指向新的URL。
总结提升
需要根据具体的需求和场景选择使用反向代理还是重定向。反向代理适用于需要将请求转发到多个内部服务器、提供负载均衡和安全性的情况。重定向适用于需要更改URL、处理错误或网站重定位的情况。