Django之redirect实现原理

又称为客户端重定向:

该方法通过修改http协议的header部分,对浏览器下达重定向指令的,让浏览器对在location中指定的url提出请求,使浏览器显示重定向网页的内容。该方法可以接受绝对的或相对的urls。如果传递到该方法的参数是一个相对的url,那么web container在将它发送到客户端前会把它转换成一个绝对的url。

标准意义上的“重定向”指的是HTTP重定向,它是HTTP协议规定的一种机制。这种机制是这样工作的:当client向server发送一个请求,要求获取一个资源时,在server接收到这个请求后发现请求的这个资源实际存放在另一个位置,于是server在返回的response中写入那个请求资源的正确的URL,并设置reponse的状态码为301(表示这是一个要求浏览器重定向的response),当client接受到这个response后就会根据新的URL重新发起请求。重定向有一个典型的特症,即:当一个请求被重定向以后,最终浏览器上显示的URL往往不再是开始时请求的那个URL了。这就是重定向的由来。

服务端重定向(dispatch)

参考资料:
https://blog.csdn.net/bluishglc/article/details/7953614

猜你喜欢

转载自blog.csdn.net/qq_33733970/article/details/80769577