详解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 相关文章推荐
jQuery 操作XML入门
Dec 25 Javascript
JavaScript高级程序设计 DOM学习笔记
Sep 10 Javascript
JS中类或对象的定义说明
Mar 10 Javascript
js实现用户注册协议倒计时的方法
Jan 21 Javascript
JS特效实现图片自动播放并可控的效果
Jul 31 Javascript
jQuery网页右侧广告跟随滚动代码分享
Apr 20 Javascript
AngularJS中的Directive实现延迟加载
Jan 25 Javascript
轻松搞定jQuery.noConflict()
Feb 15 Javascript
vue.js的提示组件
Mar 02 Javascript
jquery实现全选、全不选以及单选功能
Mar 23 jQuery
浅谈webpack devtool里的7种SourceMap模式
Jan 14 Javascript
JS数组方法reduce的用法实例分析
Mar 03 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
vue.js项目nginx部署教程
2018/04/05 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
使用Angular material主题定义自己的组件库的配色体系
2019/09/04 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
小程序实现简单语音聊天的示例代码
2020/07/24 Javascript
Element Backtop回到顶部的具体使用
2020/07/27 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python 专题四 文件基础知识
2017/03/20 Python
Python设计模式之中介模式简单示例
2018/01/09 Python
Django实现文件上传和下载功能
2019/10/06 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
python redis存入字典序列化存储教程
2020/07/16 Python
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
教师一帮一活动总结
2014/07/08 职场文书
争先创优个人总结
2015/03/04 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
运动会通讯稿300字
2015/07/20 职场文书
《我是什么》教学反思
2016/02/16 职场文书
基于Redis实现分布式锁的方法(lua脚本版)
2021/05/12 Redis
vue实现列表垂直无缝滚动
2022/04/08 Vue.js