NodeJS 服務(wù)部署至服務(wù)器時(shí)需要開(kāi)啟 Daemon 模式,即進(jìn)程始終運(yùn)行于后臺(tái)。
若拋出的異常未被 try {} catch (err) {} 捕獲,uncaughtException 事件處理程序可防止進(jìn)程直接退出。但一些底層錯(cuò)誤引發(fā)的進(jìn)程崩潰,uncaughtException 便不再適用。
可使用 PM2 實(shí)現(xiàn) NodeJS 服務(wù)的進(jìn)程管理。當(dāng)進(jìn)程異常退出時(shí),PM2 會(huì)嘗試重啟進(jìn)程保證服務(wù)的穩(wěn)定運(yùn)行。
但:有好多數(shù)據(jù)保存在內(nèi)存里,重啟之后內(nèi)存里的數(shù)據(jù)沒(méi)了???
在get請(qǐng)求中,為地址查詢字符串參數(shù)添加隨機(jī)數(shù)是為了避免瀏覽器緩存之前請(qǐng)求結(jié)果。
查詢字符串 不影響uri的訪問(wèn),但根據(jù)業(yè)務(wù)邏輯不同 可能會(huì)影響請(qǐng)求結(jié)果,
沒(méi)有發(fā)現(xiàn)原因,改成其他方式實(shí)現(xiàn)
遇到了同樣的問(wèn)題 ,關(guān)注中
由于報(bào)錯(cuò)無(wú)法準(zhǔn)確判定具體是哪些問(wèn)題,所以忽略這個(gè)報(bào)錯(cuò)。
為了解決這個(gè)問(wèn)題,i3status還是無(wú)法跳過(guò)的,畢竟i3bar還是要有一個(gè)具體的實(shí)現(xiàn)的。
首先要確保文件~/.config/i3/config有這樣的一行,然后配置i3status。
bar {
status_command i3status
}
使用編輯器編輯/etc/i3status.conf,其中的形如order += "ipv6"的行就是會(huì)顯示在右下角的。
我們把所有的會(huì)顯示的都都注釋掉,執(zhí)行sed -i 's/order/# order/g' /etc/i3status.conf
使用編輯器把# order += "load"的注釋去掉,然后把There is no royal road to learning.替換load{}中的雙引號(hào)的內(nèi)容。
你得把這個(gè) net0的網(wǎng)卡地址寫成靜態(tài)的吧。
我在 mac 下用VMware 就設(shè)置成了靜態(tài)的。window 沒(méi)弄過(guò)。
網(wǎng)上應(yīng)該很多
data[0].address.join("
") =>用innerHtml的方式傳入=》《br》 被轉(zhuǎn)譯了
注意:在組件wxss中不應(yīng)使用ID選擇器、屬性選擇器和標(biāo)簽名選擇器。
是不是這個(gè)的原因?
屬性綁定加v-bind或:好好看文檔,不然只是傳了一個(gè)為xxx的字符串。
不是太清除kolin的寫法,不過(guò)內(nèi)存泄不泄露取決于你的訂閱是否取消訂閱,一般只要不再使用后取消訂閱不會(huì)出現(xiàn)內(nèi)存泄漏。
沒(méi)有絕對(duì)的安全
首先md5不能算是加密算法,因?yàn)樗菃蜗虻摹⒉豢赡娴?,你沒(méi)法對(duì)經(jīng)過(guò)md5運(yùn)算過(guò)的密碼進(jìn)行“解密”而得到原始的明文密碼,但確實(shí)在md5與密碼發(fā)生關(guān)系時(shí)我們喜歡叫它“加密”。所以就算攻擊者知道你用了md5哈希算法,截獲了你“加密”后的密碼,即md5(password)(不妨設(shè)md5哈希函數(shù)為md5(),用戶明文密碼為password),也無(wú)法通過(guò)倒推得知用戶的明文密碼,只能暴力窮舉猜測(cè)用戶的密碼。
其次,就算攻擊者不知道password,只知道md5(password),也足夠了,他只要向服務(wù)器發(fā)送md5(password)便能通過(guò)認(rèn)證。而且驗(yàn)證的過(guò)程仍為明文對(duì)比,只是從對(duì)比明文密碼變成對(duì)比明文密碼的哈希值。為了解決這個(gè)問(wèn)題,有人提出給密碼“加鹽”:服務(wù)器既不存儲(chǔ)明文密碼password,也不存儲(chǔ)md5(password),而是存儲(chǔ)md5(password)和salt,這個(gè)salt即“鹽”。用戶每次登陸時(shí),服務(wù)器先生成一個(gè)動(dòng)態(tài)的、短時(shí)間內(nèi)不會(huì)重復(fù)的salt發(fā)送給用戶,然后用戶將md5(md5(password) + salt)發(fā)回給服務(wù)器,服務(wù)器經(jīng)過(guò)同樣的運(yùn)算后對(duì)比結(jié)果,一致則通過(guò)驗(yàn)證。這樣一來(lái),攻擊者就算截獲了salt和md5(md5(password) + salt),也無(wú)法倒推出md5(password),同時(shí)salt一經(jīng)使用,就會(huì)失效,攻擊者就無(wú)法通過(guò)重新發(fā)送md5(md5(password) + salt)來(lái)偽裝成用戶。
但上述做法有個(gè)問(wèn)題(至少一個(gè)問(wèn)題):設(shè)置密碼時(shí),用戶必須告知服務(wù)器md5(password),同時(shí)服務(wù)器上會(huì)明文存儲(chǔ)md5(password),如果設(shè)置密碼時(shí)md5(password)被截獲,或服務(wù)器的數(shù)據(jù)庫(kù)被入侵,攻擊者就會(huì)得知md5(password),從而就可以偽裝成用戶通過(guò)密碼驗(yàn)證了。而且,如果這個(gè)用戶在其它網(wǎng)站也使用了一樣的密碼(這是很常見(jiàn)的),其它網(wǎng)站又剛好使用了一樣的密碼驗(yàn)證方式,攻擊者就能同時(shí)獲得該用戶在多個(gè)網(wǎng)站的授權(quán)(撞庫(kù))。這個(gè)問(wèn)題的根本原因是設(shè)計(jì)者沒(méi)有擺脫“明文密碼”,用md5(password)來(lái)代替明文密碼與直接使用明文密碼沒(méi)有太大區(qū)別,因此有人提出,我們不要用md5(password),改用md5(password + salt)吧。這里的salt不是前面的salt,前面的是“動(dòng)態(tài)鹽”,現(xiàn)在所說(shuō)的是“靜態(tài)鹽”,為了區(qū)分,用dsalt代表動(dòng)態(tài)鹽,用ssalt代表靜態(tài)鹽。那么登陸方式就變成:服務(wù)器存儲(chǔ)md5(password + ssalt)和與之配套的靜態(tài)鹽ssalt(靜態(tài)鹽在設(shè)置密碼時(shí)配套生成),登陸時(shí),服務(wù)器動(dòng)態(tài)生成隨機(jī)的動(dòng)態(tài)鹽dsalt,將ssalt和dsalt一同發(fā)給用戶,用戶將md5(md5(password + ssalt) + dsalt)發(fā)回給服務(wù)器,服務(wù)器進(jìn)行同樣的運(yùn)算,結(jié)果一致則驗(yàn)證通過(guò)。這樣一來(lái),就算攻擊者知道了md5(password + ssalt),也只是攻破了這個(gè)用戶在一個(gè)網(wǎng)站上的賬戶,而不能攻破該用戶使用的其它網(wǎng)站的賬戶——因?yàn)楣粽卟荒芡ㄟ^(guò)md5(password + ssalt)倒推出md5(password),且對(duì)于其它網(wǎng)站,靜態(tài)鹽ssalt也是不同的,通過(guò)md5(password + ssalt1)無(wú)法推出md5(password + ssalt2)。
如果你不想讓md5(password + ssalt)被截獲,你可以使用非對(duì)稱加密(詳情自行搜索),但非對(duì)稱加密對(duì)中間人攻擊(詳情自行搜索)無(wú)能為力,為了使非對(duì)稱加密能夠抵抗中間人攻擊,人們又搞出了基于信任的一套機(jī)制(詳情自行搜索),但信任又是可以背叛的……所以說(shuō)沒(méi)有絕對(duì)的安全。
感興趣可以自學(xué)密碼學(xué)。
如圖 ie8 并沒(méi)有你這個(gè)問(wèn)題
---------補(bǔ)充,別說(shuō)ie8了,ie5我都跑通了---------
前端代碼如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.bootcss.com/jquery/1.2.3/jquery.js"></script>
</head>
<body class="bg1">
<div id="root"></div>
<script>
var $dom = $("#root");
$.ajax({
url: 'https://localhost:3000/demo/api/sayHi',
dataType:"json",
data:{name:"jack"},
type: 'post',
success: function(res){
$dom.text(res.data);
},
error: function(err){
$dom.text('錯(cuò)誤'+err.toString());
}
})
</script>
</body>
</html>
后端代碼如下,用nodejs實(shí)現(xiàn)的,其他語(yǔ)言也行,反正接口能返回東西就行
const express = require("express");
const app = express();
const fs = require("fs");
//讀取ssl的key
const privateKey = fs.readFileSync('./private.pem', 'utf8');
//讀取ssl的證書
const certificate = fs.readFileSync('./file.crt', 'utf8');
//裝箱
const credentials = { key: privateKey, cert: certificate };
//https的server
const SSLServer = require("https").createServer(credentials, app);
const router = express.Router();
const bodyParser = require("body-parser");
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));
// parse application/json
app.use(bodyParser.json());
//子路由
app.use("/demo", router);
/************常規(guī)接口開(kāi)始*************/
//sayHi
router.post("/api/sayHi", (req, res) => {
const { name } = req.body;
res.json({code:0,message:"success",data:"hi,"+name})
});
/************常規(guī)接口結(jié)束*************/
//托管靜態(tài)資源
app.use("/demo", express.static('static'));
//404處理
app.use(function (req, res, next) {
res.setHeader("Content-Type", "text/html;charset=utf-8");
res.status(404).sendFile(__dirname + "/static/404.html");
});
//其它錯(cuò)誤處理如500
app.use(function (err, req, res, next) {
if (err) {
console.log(err.stack.toString());
res.setHeader("Content-Type", "text/plain;charset=utf-8");
res.status(500).send('服務(wù)器大姨媽了!<br>servers is broken');
}
});
SSLServer.listen("3000", function () {
console.log("https服務(wù)器已啟動(dòng)");
});
以下截圖為我上面貼的代碼以表證據(jù)
-----------結(jié)論/推理------------
你上面所說(shuō)的同一個(gè)接口 一個(gè)http成功一個(gè)https不成功
那要取決于你訪問(wèn)的這種網(wǎng)頁(yè)是什么協(xié)議 如果你網(wǎng)頁(yè)訪問(wèn)的地址是http的 你去訪問(wèn)一個(gè)https的 多半瀏覽器會(huì)阻止的
這句話可能比較拗口,見(jiàn)諒,我文字表述能力不強(qiáng)。。你自己意會(huì)一下吧
個(gè)人認(rèn)為: div盒子高度(如果沒(méi)有顯示聲明height)受內(nèi)部子元素的真實(shí)內(nèi)容所決定, 而margin并不算在真實(shí)內(nèi)容中,可以看控制臺(tái),真實(shí)內(nèi)容為實(shí)線內(nèi)
---- 補(bǔ)充 ----
可以試著增加h4實(shí)線內(nèi)的property,可以發(fā)現(xiàn)div的高度會(huì)發(fā)生相應(yīng)變化
在計(jì)算屬性里獲取vuex的數(shù)據(jù)
computed: {
...mapState({
'name' : state => state.name,
})
}
在 template 里直接用
<template>
<div>Hello {{name}}</div>
</template>并不是每個(gè)代理IP都有效,你要先確認(rèn)代理是否有效再去使用
import requests
from pyquery import PyQuery as Q
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}
proxies = {
"http": "http://103.235.245.35:8080"
}
r = requests.get('http://hz.xiaozhu.com/', headers=headers, proxies=proxies)
for _ in Q(r.text)('#page_list li'):
title = Q(_).find('.result_title').text()
price = Q(_).find('.result_price').text()
print title, price
console.log(a.key))和寫(a.key = 1)的時(shí)候是不一樣的,讀的時(shí)候會(huì)一直查下去,寫的時(shí)候發(fā)現(xiàn)本身沒(méi)有就直接創(chuàng)建賦值了。{name, colors}。那你改對(duì)colors添加name是不會(huì)影響到name屬性的。其中2、3都能和原生配合調(diào)取原生權(quán)限,但是功能有限,他們都能上架(蘋果也給上,但是做的體驗(yàn)爛的話...)
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。