重定向和反向代理的区别

简介: 重定向和反向代理的区别

重定向

       重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向),可以简单理解为当我们要访问的资源不在此服务器上,那么客户端就会将请求转移到另一个服务器上去访问资源。转换请求这一部分是有客户端来完成的,用户如果不刻意查看是感觉不到的。其实是请求了两个获取到的资源,我们请求的URL地址也会发生变化。接下来让我们看看重定向的现象。

请求的URL地址

249c8055bab148e496f80f36cdc67777.png


状态码为302表示重定向的意思,可以简单的理解为该资源原本确实存在,但已经被临时改变了位置。Location首部指定的是需要将页面重新定向至的地址。一般在响应码为 3xx 的响应中才会有意义。

重定向后的URL地址78b4b3b6c831435abc74a14415845077.png

重定向原理图

669122fdb5c74c499c1f9438a382a135.png

反向代理

       反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。在请求的过程中URL地址是不会发生变化的,第二次请求是由代理服务器去发送请求的,获取到用户想要的数据之后通过反向代理服务器返回给用户。所以给用户的感觉就是代理服务器就是目标服务器。接下来看一下配置反向代理的效果。

我们需要在服务器上的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/;
        }
      }

f5c5a48093b4458694bfa8b9d6a73527.png

这样我们通过访问服务器的IP地址或者用户名后面拼接baidu就可以访问到百度的页面了。

反向代理原理图

e869cfca3d874fc2ba9cda71d173623d.png

重定向和反向代理的区别

重定向:1.浏览器的URL地址栏发生变化
        2.第二次访问由客户端进行
        3.两次不同的请求
反向代理:1.浏览器URL地址栏不发生变化
          2.第二次访问由服务器进行
          3.同一次请求


相关文章
|
6月前
反向代理和正向代理的区别
反向代理和正向代理的区别
|
6月前
|
缓存 负载均衡 前端开发
详解正向代理和反向代理的不同用途
详解正向代理和反向代理的不同用途
195 10
|
6月前
|
缓存 负载均衡 JavaScript
服务器反向代理的作用与实现
服务器反向代理的作用与实现
134 8
|
6月前
|
缓存 负载均衡 网络安全
正向代理和反向代理的区别
正向代理和反向代理的区别
|
6月前
|
前端开发
请求转发和重定向的区别
请求转发和重定向的区别
86 0
重定向和请求转发的区别
重定向和请求转发的区别
86 0
|
Java 数据库
Servlet的请求转发和重定向的区别
Servlet的请求转发和重定向的区别
133 0
Servlet的请求转发和重定向的区别
|
XML 数据格式
Javaweb 请求转发和请求重定向
1.请求转发和请求重定向区别 请求转发和请求重定向主要区别,包含以下 5 点: 定义不同 请求方不同 数据共享不同 最终 URL 地址不同 代码实现不同 定义不同:🙌
129 0
Javaweb 请求转发和请求重定向
|
前端开发
请求转发与请求重定向
请求转发与请求重定向
266 0
请求转发与请求重定向
|
前端开发 Java
重定向与请求转发
介绍JavaWeb中的实现页面跳转的同卵双胞胎兄弟—重定向与请求转发以及代码实现流程
重定向与请求转发