详解Node.js实现301、302重定向服务


Posted in Javascript onApril 07, 2017

在Web应用中,有时会遇到页面需要Url重定向的情况。Url重定向分为301、302两种。301、302都是HTTP状态的编码,都代表着某个Url发生了转移。不同的是301重定向是永久的重定向(Moved Permanently),表示本网页永久性转移到另一个地址,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。302重定向是临时的重定向(Moved Temporarily),表示本网页暂时性转移到另一个地址,搜索引擎会抓取新的内容而保留旧的网址。

可以用Nodejs的http模块,实现一个301或302重定服务,实现代码如下:

实现301重定向服务:

var http = require('http');

var server = http.createServer(function (req, res) {
 res.writeHead(301, {'Location': 'http://itbilu.com/'});
 console.log(res._header);
 res.end();
});

server.listen(3100)

Log打印结果为:

HTTP/1.1 301 Moved Permanently
Location: http://itbilu.com/
Date: Mon, 27 Apr 2015 05:39:47 GMT
Connection: keep-alive
Transfer-Encoding: chunked

实现302重定向服务:

var http = require('http');

var server = http.createServer(function (req, res) {
 res.writeHead(302, {'Location': 'http://itbilu.com/'});
 console.log(res._header);
 res.end();
});

server.listen(3100)

Log打印结果为:

HTTP/1.1 302 Moved Temporarily
Location: http://itbilu.com/
Date: Mon, 27 Apr 2015 05:40:51 GMT
Connection: keep-alive
Transfer-Encoding: chunked

由上可见,浏览器会跟根据301302状态码,跳转到Location对应的网址中。Node.js在设置301302状态时,还自动加入了Moved PermanentlyMoved Temporarily状态描述。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
跨浏览器的设置innerHTML方法
Sep 18 Javascript
jQuery隔行变色与普通JS写法的对比
Apr 21 Javascript
js图片处理示例代码
May 12 Javascript
javascript if条件判断方法小结
May 17 Javascript
PHPExcel中的一些常用方法汇总
Jan 23 Javascript
详解JavaScript的Date对象(制作简易钟表)
Apr 07 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
Jan 27 Javascript
深入浅析angular和vue还有jquery的区别
Aug 13 jQuery
vue 中引用gojs绘制E-R图的方法示例
Aug 24 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
Mar 01 Javascript
vue修改Element的el-table样式的4种方法
Sep 17 Javascript
springboot+vue实现文件上传下载
Nov 17 Vue.js
Express URL跳转(重定向)的实现方法
Apr 07 #Javascript
微信小程序 首页制作简单实例
Apr 07 #Javascript
微信小程序 商城开发(ecshop )简单实例
Apr 07 #Javascript
js控制文本框禁止输入特殊字符详解
Apr 07 #Javascript
ES6学习笔记之Set和Map数据结构详解
Apr 07 #Javascript
Vue表单验证插件Vue Validator使用方法详解
Apr 07 #Javascript
js 数字、字符串、布尔值的转换方法(必看)
Apr 07 #Javascript
You might like
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
form自动提交实例讲解
2017/07/10 PHP
js返回上一页并刷新代码整理
2012/12/21 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
Javascript 实现图片无缝滚动
2014/12/19 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
JS中的BOM应用
2018/02/02 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
vue两组件间值传递 $router.push实现方法
2019/05/15 Javascript
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
tornado捕获和处理404错误的方法
2014/02/26 Python
python实现从web抓取文档的方法
2014/09/26 Python
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
python游戏开发的五个案例分享
2020/03/09 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
皮肤科医师岗位职责
2013/12/04 职场文书
经济管理自荐书
2014/06/09 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
退税申请报告怎么写
2015/05/18 职场文书
Python使用scapy模块发包收包
2021/05/07 Python
Java数据结构之链表相关知识总结
2021/06/18 Java/Android
Python+pyaudio实现音频控制示例详解
2022/07/23 Python