詳解Node.js實(shí)現(xiàn)301、302重定向服務(wù)
在Web應(yīng)用中,有時(shí)會(huì)遇到頁面需要Url重定向的情況。Url重定向分為301、302兩種。301、302都是HTTP狀態(tài)的編碼,都代表著某個(gè)Url發(fā)生了轉(zhuǎn)移。不同的是301重定向是永久的重定向(Moved Permanently),表示本網(wǎng)頁永久性轉(zhuǎn)移到另一個(gè)地址,搜索引擎在抓取新內(nèi)容的同時(shí)也將舊的網(wǎng)址替換為重定向之后的網(wǎng)址。302重定向是臨時(shí)的重定向(Moved Temporarily),表示本網(wǎng)頁暫時(shí)性轉(zhuǎn)移到另一個(gè)地址,搜索引擎會(huì)抓取新的內(nèi)容而保留舊的網(wǎng)址。
可以用Nodejs的http模塊,實(shí)現(xiàn)一個(gè)301或302重定服務(wù),實(shí)現(xiàn)代碼如下:
實(shí)現(xiàn)301
重定向服務(wù):
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打印結(jié)果為:
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
實(shí)現(xiàn)302
重定向服務(wù):
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打印結(jié)果為:
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
由上可見,瀏覽器會(huì)跟根據(jù)301
和302
狀態(tài)碼,跳轉(zhuǎn)到Location
對(duì)應(yīng)的網(wǎng)址中。Node.js在設(shè)置301
和302
狀態(tài)時(shí),還自動(dòng)加入了Moved Permanently
或Moved Temporarily
狀態(tài)描述。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
NodeJs版本過高無法啟動(dòng)Vue項(xiàng)目報(bào)錯(cuò)的幾種解決方法
在開發(fā)vue項(xiàng)目時(shí),我們通常使用nodejs作為項(xiàng)目的運(yùn)行環(huán)境,但是有時(shí)候,由于nodejs版本過高,可能會(huì)導(dǎo)致vue項(xiàng)目啟動(dòng)報(bào)錯(cuò),這篇文章主要給大家介紹了關(guān)于NodeJs版本過高無法啟動(dòng)Vue項(xiàng)目報(bào)錯(cuò)的幾種解決方法,需要的朋友可以參考下2023-12-12Node實(shí)現(xiàn)搜索框進(jìn)行模糊查詢
這篇文章主要為大家詳細(xì)介紹了Node實(shí)現(xiàn)搜索框進(jìn)行模糊查詢,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06node實(shí)現(xiàn)mock-plugin中間件的方法
這篇文章主要介紹了node實(shí)現(xiàn)mock-plugin中間件的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12nodejs+socket.io實(shí)現(xiàn)p2p消息實(shí)時(shí)發(fā)送的項(xiàng)目實(shí)踐
本文主要介紹了nodejs+socket.io實(shí)現(xiàn)p2p消息實(shí)時(shí)發(fā)送,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06NodeJs項(xiàng)目中關(guān)閉ESLint的方法
ESLint是一個(gè)用來識(shí)別 ECMAScript 并且按照規(guī)則給出報(bào)告的代碼檢測(cè)工具,使用它可以避免低級(jí)錯(cuò)誤和統(tǒng)一代碼的風(fēng)格。這篇文章主要介紹了NodeJs項(xiàng)目中關(guān)閉ESLint的方法,需要的朋友可以參考下2018-08-08Node.js中的WebSocket底層實(shí)現(xiàn)
WebSockets是基于HTTP的雙向通信協(xié)議,允許客戶端和服務(wù)器之間實(shí)現(xiàn)實(shí)時(shí)、持久的數(shù)據(jù)交換,本文詳細(xì)介紹了使用JavaScript和Node.js創(chuàng)建WebSockets服務(wù)器和客戶端的過程,感興趣的可以了解一下2024-10-10