Redirect 是指,当我们通过URL 访问一个资源的时候,我们可能会发现,这个资源已经不在这个URL 所指向的位置了。这个时候,服务器要告诉浏览器/客户端,要请求的资源在什么地方,然后浏览器/客户端再去重新请求那个地方,这样的话,就可以拿到资源。
const http = require('http')
const fs = require('fs')
const zlib = require('zlib')
http.createServer(function (request, response) {
console.log('request come', request.url)
if (request.url === '/') {
response.writeHead(302, {
'Location': '/new'
})
response.end()
}
if (request.url === '/new') {
response.writeHead(200, {
'Content-Type': 'text/html'
})
response.end('<div>Content data</div>')
}
}).listen(8888)
console.log('serve listening on 8888')
我们启动服务,访问localhost:8888 它就会自动跳转到localhost:8888/new 了。
注意,当把“302” 改成200 时,是不会重定向的。只有302的头,才回去重定向。
当然,302 是临时跳转,而不是永久跳转。而301 是永久跳转(慎重!浏览器中会记录,浏览器清缓存后才会重来)。