# Redirect
当我们请求访问某个网络资源的时候,发现这个资源已经不在指定的位置了,这时候服务器告诉浏览器要请求的资源变更后的地址,浏览器再次请求变更后的地址,获取资源。
# node 实践
const http = require('http')
const fs = require('fs')
http.createServer(function(req, res) {
if (req.url === '/') {
// 如果这个写 200 的状态,还是不进行跳转,因为只有 302 状态浏览器才会进行跳转到新的地址
// 302 代表的是临时性的跳转,下次进行访问资源的时候,还是会经过服务器端,获取跳转后的地址,再进行跳转。
// 如果确定资源永久跳转,指定 301,下次进行访问资源的时候,浏览器直接会请求变更后的地址(浏览器会进行缓存该路由)。如果此时修改永久跳转的地址变成 200,浏览器还是会进行跳转,是因为浏览器从缓存中读取该地址的跳转路由。
res.writeHead(302, {
'Location': '/new'
})
res.end('')
}
if (req.url === '/new') {
res.writeHead(200, {
'Content-Type': 'text/html'
})
res.end('<div>content</div>')
}
}).listen(8888)
阅读量:
评 论:
← 数据协商 CSP-内容安全策略 →