Redirect

如果发送一个请求,发现这个请求地址的内容已经不存在了,服务器端会告诉客户端他想访问的内容在哪里,或者说服务器端的某个地址没有了,这个时候不应该废弃,不然就会404,而应该在这里告诉客户端新的地址在哪里

 

//server.js
const http = require('http');

http.createServer(function(req, res){
  console.log('req come', req.url);
  if (req.url === '/') {
    res.writeHead(302, {
      'Location': '/new'
    })
    res.end('')
  }
  if (req.url === '/new') {
    res.writeHead(200, {
      'Content-Type': 'text/html'
    })
    res.end('<div>this is content</div>')
  }
}).listen(8888);

console.log('server listening on 8888');
console.log('http://localhost:8888/');

 

如图,这就是最基本的redirect操作,如果改成200会怎么样呢

 

会发现什么内容都没有,虽然指定了location,但也没有用,只有302代表临时跳转,如果说表示永久跳转,改成301,什么意思呢,比如在302的时候

 

 

如图,每次请求,都会经过服务端那一次跳转,再返回新的

改成301后,第一次经过服务端跳转,第二次就直接访问new了,这是为什么呢,因为这个路径永久变成了/new,这个头会告诉客户端,下次再是这个路径,浏览器端改成/new就可以了,但是301要慎用,如果使用了301,你再要返回可不是你能决定的了

 

转载于:https://www.cnblogs.com/wzndkj/p/10106355.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值