# 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)

评 论:

更新: 11/21/2020, 7:00:56 PM