301/302重定向以及nodejs的实现

url重定向分为301和302两种,301和302都是HTTP的状态码,都代表某个url发生了转变。但是区别在于:

  1. 301

    永久的重定向,表示当前网页永久性转移到了另一个url上,搜索引擎在抓取新内容的时候会将旧的网址替换为重定向的网址,同时旧网址下原有的外部链接都转移到新地址下,从而不会让当前网站的排名收到影响。也即:新网址完全继承了旧网址,旧网址的排名等完全清零。在实际的场景中:比如,当访问a.com 的时候会 重定向 b.com 下次再次访问a.com的时候,浏览器不会发起请求a.com而是直接去访问b.com,也即浏览器会记住

  2. 302

    临时的重定向,表示当前网页暂时转移到另一个url上,搜索引擎会抓取新的内容但是会保留旧的网址。也即对旧网址没有影响,新网址不会有排名。在实际场景中:比如,浏览器不记忆,每次都会先访问旧地址。

如何通过nodejs让客户端重定向?

  1. 状态码设置为302 表示临时重定向

    statusCode

  2. 在响应头中通过Location 告诉客户端往哪儿重定向

    setHeader

  3. 如果客户端发现收到服务器的响应的状态码是302,就会自动去响应头中找Location,然后对该地址发起新的请求

  4. 可以在开发者工具中查看重定向的过程,勾选->Preserve log(不让其清除之前的请求响应记录)

  5. 案例:

    let http = require('http')
    http
      .createServer((req,res) => {
          
          
    	// 重定向
    	res.statsuCode = 302;// 302重定向
       // res.statusCode = 301;// 301重定向
    	res.setHeader('Location','/index.html');
    	res.end();
    })
      .listen(3000,()=>{
          
          
    	console.log('server is running...');
    })
    
    

猜你喜欢

转载自blog.csdn.net/chen__cheng/article/details/114645807