详解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 相关文章推荐
Z-Blog中用到的js代码
Mar 15 Javascript
Javascript 原型和继承(Prototypes and Inheritance)
Apr 01 Javascript
js中一个函数获取另一个函数返回值问题探讨
Nov 21 Javascript
JQuery 在线引用及测试引用是否成功
Jun 24 Javascript
详解vue 配合vue-resource调用接口获取数据
Jun 22 Javascript
详解JS数值Number类型
Feb 07 Javascript
vue过滤器用法实例分析
Mar 15 Javascript
在vue中高德地图引入和轨迹的绘制的实现
Oct 11 Javascript
如何使用gpu.js改善JavaScript的性能
Dec 01 Javascript
vue监听键盘事件的相关总结
Jan 29 Vue.js
帮你提高开发效率的JavaScript20个技巧
Jun 18 Javascript
四十九个javascript小知识实用技巧
Nov 20 Javascript
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制作简单的内容采集器的代码
2007/11/28 PHP
php readfile()修改文件上传大小设置
2017/08/11 PHP
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
Javascript 各浏览器的 Javascript 效率对比
2008/01/23 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
Js操作树节点自动折叠展开的几种方法
2014/05/05 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
jQuery实现伪分页的方法分享
2016/02/17 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
angularJs自定义过滤器实现手机号信息隐藏的方法
2018/10/08 Javascript
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
python实现稀疏矩阵示例代码
2017/06/09 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
Python实现京东秒杀功能代码
2019/05/16 Python
python和php哪个容易学
2020/06/19 Python
Python进行统计建模
2020/08/10 Python
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
个人找工作求职简历的自我评价
2013/10/20 职场文书
英语自荐信范文
2013/12/11 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
中学生自我评价范文
2015/03/03 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
【海涛教你打DOTA】虚空假面第一视角骨弓3房29杀
2022/04/01 DOTA