- N +

localstorage可以跨域嗎 localstorage跨域讀取

大家好,關(guān)于localstorage可以跨域嗎很多朋友都還不太明白,不過(guò)沒(méi)關(guān)系,因?yàn)榻裉煨【幘蛠?lái)為大家分享關(guān)于localstorage跨域讀取的知識(shí)點(diǎn),相信應(yīng)該可以解決大家的一些困惑和問(wèn)題,如果碰巧可以解決您的問(wèn)題,還望關(guān)注下本站哦,希望對(duì)各位有所幫助!

微服務(wù)在Docker+k8s下如何部署

正好最近在項(xiàng)目中用到了這些技術(shù),我來(lái)拋磚引玉吧。

首先說(shuō)結(jié)論:

1.k8s是非常好的一項(xiàng)技術(shù),很穩(wěn)定。如果發(fā)現(xiàn)正在運(yùn)行的pod的數(shù)量不等于用戶設(shè)定的期望值,k8s則會(huì)自動(dòng)創(chuàng)建或者刪除pod,直到兩者相等。這樣既保障了服務(wù)的不間斷運(yùn)行,同時(shí)還可以動(dòng)態(tài)縮放服務(wù)的規(guī)格。用戶只要調(diào)整pod的replicate的數(shù)量即可,其他的都交給k8s就好,非常省心。

2.要用jenkins來(lái)集成命令行操作,雖然我個(gè)人非常偏愛(ài)使用命令行,但是我不得不承認(rèn)用jenkins集成命令行操作會(huì)極大的提升工作效率。

下面說(shuō)實(shí)現(xiàn)步驟:(本文以azure平臺(tái)為例)

1.編寫Dockerfile

2.在jenkins創(chuàng)建任務(wù),并執(zhí)行包含如下命令的腳本

2.1gitpull源代碼到本地

2.2dockerbuild命令生成鏡像文件

2.3docker定義鏡像文件版本號(hào)并上傳到azure平臺(tái)

2.4kubectl命令來(lái)創(chuàng)建k8s的deployment&service.

2.5每次版本更新可以調(diào)用updateimage來(lái)編譯新的鏡像版本并提供給k8s使用

注意在創(chuàng)建k8s的deployment和service的時(shí)候需要編寫yaml格式的配置文件,deployment配置包括名稱,鏡像文件地址,cpu最大最小分配值,內(nèi)存最大最小分配值等。service配置文件包括名稱,引用的deployment名稱,以及是否使用loadbalancer等。

更多詳細(xì)信息可以參考我的wiki.https://github.com/FamingHou/MyWiki

h5新特性可以提高可用性嗎

可以

H5新特性:

新增選擇器document.querySelector、document.querySelectorAll

拖拽釋放(Draganddrop)API

媒體播放的video和audio

本地存儲(chǔ)localStorage和sessionStorage

離線應(yīng)用manifest

桌面通知Notifications

語(yǔ)意化標(biāo)簽article、footer、header、nav、section

增強(qiáng)表單控件calendar、date、time、email、url、search

地理位置Geolocation

多任務(wù)webworker

全雙工通信協(xié)議websocket

歷史管理history

跨域資源共享(CORS)Access-Control-Allow-Origin

頁(yè)面可見(jiàn)性改變事件visibilitychange

跨窗口通信PostMessage

FormData對(duì)象

繪畫canvas

nodejs怎么解決跨域cookie丟失的問(wèn)題

cookie是有存儲(chǔ)路徑的,可能是跨域請(qǐng)求之后導(dǎo)致你的請(qǐng)求路徑發(fā)生了變化,導(dǎo)致你在當(dāng)前的路徑下面找不到cookie

Java開(kāi)發(fā)中有哪些登錄方法

登錄認(rèn)證幾乎是任何一個(gè)系統(tǒng)的標(biāo)配,web系統(tǒng)、APP、PC客戶端等,好多都需要注冊(cè)、登錄、授權(quán)認(rèn)證。場(chǎng)景說(shuō)明

以一個(gè)電商系統(tǒng),假設(shè)淘寶為例,如果我們想要下單,首先需要注冊(cè)一個(gè)賬號(hào)。擁有了賬號(hào)之后,我們需要輸入用戶名(比如手機(jī)號(hào)或郵箱)、密碼完成登錄過(guò)程。之后如果你在一段時(shí)間內(nèi)再次進(jìn)入系統(tǒng),是不需要輸入用戶名和密碼的,只有在連續(xù)長(zhǎng)時(shí)間不登錄的情況下(例如一個(gè)月沒(méi)登錄過(guò))訪問(wèn)系統(tǒng),再次需要輸入用戶名和密碼。如果使用頻率很頻繁,通常是一年都不用再輸一次密碼,所以經(jīng)常在換了一臺(tái)電腦或者一部手機(jī)之后,一些經(jīng)常使用的網(wǎng)站或APP不記得密碼了。

提煉出來(lái)整個(gè)過(guò)程大概就是如下幾步:

首次使用,需要通過(guò)郵箱或手機(jī)號(hào)注冊(cè);注冊(cè)完成后,需要提供用戶名和密碼完成登錄;下次再使用,通常不會(huì)再次輸入用戶名和密碼即可直接進(jìn)入系統(tǒng)并使用其功能(除非連續(xù)長(zhǎng)時(shí)間未使用);常用的認(rèn)證方式

OAuth認(rèn)證

OAuth認(rèn)證比較常見(jiàn)的就是微信登錄、微博登錄、qq登錄等,簡(jiǎn)單來(lái)說(shuō)就是利用這些比較權(quán)威的網(wǎng)站或應(yīng)用開(kāi)放的API來(lái)實(shí)現(xiàn)用戶登錄,用戶可以不用在你的網(wǎng)站或應(yīng)用上注冊(cè)賬號(hào),直接用已有的微信、微博、qq等賬號(hào)登錄。

這一樣一來(lái),即省了用戶注冊(cè)的時(shí)間,又簡(jiǎn)化了你的系統(tǒng)的賬號(hào)體系。從而既可以提高用戶注冊(cè)率可以節(jié)省開(kāi)發(fā)時(shí)間,同時(shí),安全性也有了保障。

維基百科對(duì)它的解釋摘要如下:

OAuth允許用戶提供一個(gè)令牌,而不是用戶名和密碼來(lái)訪問(wèn)他們存放在特定服務(wù)提供者的數(shù)據(jù)。每一個(gè)令牌授權(quán)一個(gè)特定的網(wǎng)站(例如,視頻編輯網(wǎng)站)在特定的時(shí)段(例如,接下來(lái)的2小時(shí)內(nèi))內(nèi)訪問(wèn)特定的資源(例如僅僅是某一相冊(cè)中的視頻)。這樣,OAuth讓用戶可以授權(quán)第三方網(wǎng)站訪問(wèn)他們存儲(chǔ)在另外服務(wù)提供者的某些特定信息,而非所有內(nèi)容。

假設(shè)我們開(kāi)發(fā)了一個(gè)電商平臺(tái),并集成了微信登錄,以這個(gè)場(chǎng)景為例,說(shuō)一下OAuth的工作原理。

講之前需要了解其中涉及到的幾個(gè)角色:

用戶:即使用我們平臺(tái)的用戶用戶終端:即最終用戶使用的APP端或web端應(yīng)用服務(wù)器端:即我們的服務(wù)器端授權(quán)服務(wù)器端:這里就是微信處理授權(quán)請(qǐng)求的服務(wù)器

好的,接下來(lái)開(kāi)始在我們的電商平臺(tái)web端實(shí)現(xiàn)微信登錄功能。微信網(wǎng)頁(yè)授權(quán)是授權(quán)碼模式(authorizationcode)的OAuth授權(quán)模式。

我們電商平臺(tái)的用戶過(guò)來(lái)登錄,常用場(chǎng)景是點(diǎn)擊“微信登錄”按鈕;接下來(lái),用戶終端將用戶引導(dǎo)到微信授權(quán)頁(yè)面;用戶同意授權(quán),應(yīng)用服務(wù)器重定向到之前設(shè)置好的redirect_uri(應(yīng)用服務(wù)器所在的地址),并附帶上授權(quán)碼(code);應(yīng)用服務(wù)器用上一步獲取的code向微信授權(quán)服務(wù)器發(fā)送請(qǐng)求,獲取access_token,也就是上面說(shuō)的令牌;之后應(yīng)用服務(wù)器用上一步獲取的access_token去請(qǐng)求微信授權(quán)服務(wù)器獲取用戶的基本信息,例如頭像、昵稱等;

Cookie-Session認(rèn)證

早期互聯(lián)網(wǎng)以web為主,客戶端是瀏覽器,所以Cookie-Session方式最那時(shí)候最常用的方式,直到現(xiàn)在,一些web網(wǎng)站依然用這種方式做認(rèn)證。

認(rèn)證過(guò)程大致如下:

用戶輸入用戶名、密碼或者用短信驗(yàn)證碼方式登錄系統(tǒng);服務(wù)端驗(yàn)證后,創(chuàng)建一個(gè)Session信息,并且將SessionID存到cookie,發(fā)送回瀏覽器;下次客戶端再發(fā)起請(qǐng)求,自動(dòng)帶上cookie信息,服務(wù)端通過(guò)cookie獲取Session信息進(jìn)行校驗(yàn);

弊端

只能在web場(chǎng)景下使用,如果是APP中,不能使用cookie的情況下就不能用了;即使能在web場(chǎng)景下使用,也要考慮跨域問(wèn)題,因?yàn)閏ookie不能跨域;cookie存在CSRF(跨站請(qǐng)求偽造)的風(fēng)險(xiǎn);如果是分布式服務(wù),需要考慮Session同步問(wèn)題;

Cookie-Session改造版

由于傳統(tǒng)的Cookie-Session認(rèn)證存在諸多問(wèn)題,可以把上面的方案改造一下。改動(dòng)的地方如下:

不用cookie做客戶端存儲(chǔ),改用其他方式,web下使用localstorage,APP中使用客戶端數(shù)據(jù)庫(kù),這樣就實(shí)現(xiàn)了跨域,并且避免了CSRF;服務(wù)端也不存Session了,把Session信息拿出來(lái)存到Redis等內(nèi)存數(shù)據(jù)庫(kù)中,這樣即提高了速度,又避免了Session同步問(wèn)題;

經(jīng)過(guò)改造之后變成了如下的認(rèn)證過(guò)程:

用戶輸入用戶名、密碼或者用短信驗(yàn)證碼方式登錄系統(tǒng);服務(wù)端經(jīng)過(guò)驗(yàn)證,將認(rèn)證信息構(gòu)造好的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)到Redis中,并將key值返回給客戶端;客戶端拿到返回的key,存儲(chǔ)到localstorage或本地?cái)?shù)據(jù)庫(kù);下次客戶端再次請(qǐng)求,把key值附加到header或者請(qǐng)求體中;服務(wù)端根據(jù)獲取的key,到Redis中獲取認(rèn)證信息;

基于JWT的Token認(rèn)證

上面的方案雖然經(jīng)過(guò)了改版,但還是需要客戶端和服務(wù)器端維持一個(gè)狀態(tài)信息,比如用cookie換session,或者用key換Redis的value信息,基于JWT的Token認(rèn)證方案可以省去這個(gè)過(guò)程。

JSONWebToken(JWT)是一個(gè)非常輕巧的規(guī)范。這個(gè)規(guī)范允許我們使用JWT在用戶和服務(wù)器之間傳遞安全可靠的信息。

認(rèn)證過(guò)程

依然是用戶登錄系統(tǒng);服務(wù)端驗(yàn)證,將認(rèn)證信息通過(guò)指定的算法(例如HS256)進(jìn)行加密,例如對(duì)用戶名和用戶所屬角色進(jìn)行加密,加密私鑰是保存在服務(wù)器端的,將加密后的結(jié)果發(fā)送給客戶端,加密的字符串格式為三個(gè)"."分隔的字符串Token,分別對(duì)應(yīng)頭部、載荷與簽名,頭部和載荷都可以通過(guò)base64解碼出來(lái),簽名部分不可以;客戶端拿到返回的Token,存儲(chǔ)到localstorage或本地?cái)?shù)據(jù)庫(kù);下次客戶端再次發(fā)起請(qǐng)求,將Token附加到header中;服務(wù)端獲取header中的Token,通過(guò)相同的算法對(duì)Token中的用戶名和所屬角色進(jìn)行相同的加密驗(yàn)證,如果驗(yàn)證結(jié)果相同,則說(shuō)明這個(gè)請(qǐng)求是正常的,沒(méi)有被篡改。這個(gè)過(guò)程可以完全不涉及到查詢Redis或其他存儲(chǔ);

優(yōu)點(diǎn)

使用json作為數(shù)據(jù)傳輸,有廣泛的通用型,并且體積小,便于傳輸;不需要在服務(wù)器端保存相關(guān)信息;jwt載荷部分可以存儲(chǔ)業(yè)務(wù)相關(guān)的信息(非敏感的),例如用戶信息、角色等;總結(jié)

綜上所述,JWT可以作為首選的認(rèn)證方案。當(dāng)然,具體的情況具體分析,還要看是不是適合真實(shí)的應(yīng)用場(chǎng)景。除了上述的這些,涉及到信息安全的,建議全部采用https方式部署,采用https方式,信息很難被嗅探破解,對(duì)應(yīng)用的安全性很重要。

怎么樣才能學(xué)好java編程

不扯那些虛的,要來(lái)就來(lái)實(shí)質(zhì)性的干貨。

明確自己學(xué)習(xí)的原因

問(wèn)問(wèn)自己是抱著什么目的要學(xué)習(xí)Java,沒(méi)有目標(biāo)的學(xué)習(xí)是效率極低的,并且容易半途而廢;

了解Java可以做什么,Java可以從事的崗位以及軟件行業(yè)的發(fā)展情況;

自己是否對(duì)Java方向感興趣;

Java基礎(chǔ)

學(xué)習(xí)準(zhǔn)備

推薦看視頻入門,可以通過(guò)某寶以及某魚(yú)購(gòu)買相關(guān)的視頻,別挑三揀四,選中一個(gè)視頻看完再說(shuō),對(duì)于初學(xué)者,無(wú)論選哪一個(gè)都是值得你學(xué)習(xí)的。可以選擇傳智、黑馬、尚學(xué)堂等教學(xué)視頻,買一個(gè)系列的即可;

有人說(shuō)編輯器等IDE環(huán)境不適合看視頻,浪費(fèi)時(shí)間,但是初學(xué)者在學(xué)習(xí)第一個(gè)編程IDE時(shí),推薦看視頻或者通過(guò)搜索引擎了解工具的使用,看書其實(shí)在剛開(kāi)始可能更浪費(fèi)時(shí)間;

看完基礎(chǔ)視頻對(duì)知識(shí)有個(gè)大概的了解,這時(shí)候看書就不會(huì)一頭霧水,此時(shí)可以通過(guò)看書來(lái)深入學(xué)習(xí),之后的學(xué)習(xí)可以自己選擇看書還是看視頻,最好的方法是花時(shí)間既看視頻也看書;

學(xué)著學(xué)著忘掉前面的別總想著回頭記住,先往后學(xué),有些基礎(chǔ)知識(shí)暫時(shí)用不上,當(dāng)你學(xué)到應(yīng)用的知識(shí)時(shí)自然會(huì)慢慢理解;

書籍推薦

入門書籍:《HeadFirstJava》、《Java核心技術(shù)》

進(jìn)階書籍:《Java編程思想》

JavaWeb

學(xué)習(xí)完Java基礎(chǔ),接著適合學(xué)習(xí)JavaWeb,這個(gè)推薦看視頻,學(xué)習(xí)數(shù)據(jù)庫(kù)和JDBC基礎(chǔ)知識(shí)以及基本的前端知識(shí),然后學(xué)習(xí)SSM框架,學(xué)習(xí)路線為:

Mysql->JDBC->HTML、CSS、JavaScript、JSP->Spring->SpringMVC->Mybatis->SSM整合->SSM項(xiàng)目實(shí)戰(zhàn)

推薦兩本書:

《深入分析javaweb技術(shù)內(nèi)幕》

《架構(gòu)探險(xiǎn)-從零開(kāi)始寫javaweb框架》:講解ioc、aop通俗易懂,實(shí)現(xiàn)ioc、aop

實(shí)戰(zhàn)之后返回深入學(xué)習(xí)Java相關(guān)知識(shí),自頂向下學(xué)習(xí),通過(guò)大概學(xué)習(xí)基礎(chǔ),實(shí)戰(zhàn)之后返回深入學(xué)習(xí)基礎(chǔ)知識(shí),由廣至深。

并發(fā)編程

推薦書籍:

《Java并發(fā)編程的藝術(shù)》

設(shè)計(jì)模式

《HeadFirst設(shè)計(jì)模式》

JVM

《深入理解Java虛擬機(jī)》

要想超越別人,不僅僅要掌握實(shí)戰(zhàn)技能,更重要的是基礎(chǔ)扎實(shí)

算法

《算法》第4版

計(jì)算機(jī)網(wǎng)絡(luò)

《圖解TCP/IP》

《圖解HTTP》

操作系統(tǒng)

《操作系統(tǒng)概念》(恐龍書)

這么多已經(jīng)夠你學(xué)習(xí)了,主要是行動(dòng)起來(lái),還有更深入的,比如數(shù)據(jù)庫(kù)方面以及Java相關(guān)的方面,等你學(xué)完以上知識(shí)相信你自己已經(jīng)知道需要學(xué)習(xí)什么了,不要一次被這么多內(nèi)容嚇到,只要靜下心來(lái),下一個(gè)大神就是你。

附上一張可供參考的詳細(xì)思維導(dǎo)圖

java面試題有哪些

肝了一個(gè)月的面試題終于來(lái)啦,大家開(kāi)心不。

2020年最新Java面試題整理,全網(wǎng)最全一份,包含各個(gè)技術(shù)棧,Java基礎(chǔ),Java集合,多線程,Java異常,spring,springMVC,springboot,springcloud,netty,dubbo,activemq,Javaweb,jvm,kafka,MongoDB,mybatis,MySQL,Nginx,rabbitmq,Redis,Tomcat,zookeeper,設(shè)計(jì)模式,數(shù)據(jù)結(jié)構(gòu),算法,分布式,限流,降級(jí),cap原理等等知識(shí)點(diǎn)

話不多說(shuō),直接上圖

總共80多個(gè)PDF

【BAT必備】計(jì)算機(jī)網(wǎng)絡(luò)面試題:

鏈接:https://pan.baidu.com/s/1hFggmtdL1ZmE4utBlo8S1g提取碼:qfkh

【BAT必備】設(shè)計(jì)模式面試題

鏈接:https://pan.baidu.com/s/1eXJveIVvQe-m3MdvLcT-fQ提取碼:j0kx

【BAT必備】數(shù)據(jù)結(jié)構(gòu)算法面試題:

鏈接:https://pan.baidu.com/s/1daFN9jY03fXsqwc9LeKi2w提取碼:5ab7

【BAT必備】多線程面試題:

鏈接:https://pan.baidu.com/s/1GdvsNESoHPBjWKN2h-iK7Q提取碼:cqib

【BAT必備】并發(fā)編程鎖面試題:

鏈接:https://pan.baidu.com/s/1hXPPtMY2dvz-g7QcSTc3PA提取碼:zhmy

【BAT必備】tomcat面試題:

鏈接:https://pan.baidu.com/s/1qPZXx4lmLynmaF0XjRTzpQ提取碼:5m16

【BAT必備】zookeeper面試題:

鏈接:https://pan.baidu.com/s/1EhOee9e1Qe-Q6RC8KlthxA提取碼:p2am

【BAT必備】spring全家桶面試題:

鏈接:https://pan.baidu.com/s/1DXGO-N5P6QIGKLZ8LIVOuQ提取碼:m9v7

【BAT必備】rocketMq面試題:

鏈接:https://pan.baidu.com/s/1TEF3yUR4OOaIpj-4ud_79A提取碼:3g3d

【BAT必備】redis面試題:

鏈接:https://pan.baidu.com/s/1qlanxWBfwvKUObnHulCQiA提取碼:rjo7

【BAT必備】rabbitMq面試題:

鏈接:https://pan.baidu.com/s/1ywLiq3IUJVyZosPLNrmyTA提取碼:0td4

【BAT必備】netty面試題:

鏈接:https://pan.baidu.com/s/1Pbv4aelqOt1dUPA2SwEB_Q提取碼:2w1e

【BAT必備】Nginx面試題:

鏈接:https://pan.baidu.com/s/1r8YNyOz0N6MJ9F0045lEZw提取碼:49tl

【BAT必備】MySQL面試題:

鏈接:https://pan.baidu.com/s/1GeX6Fs4nNi6fTUHKxJ2SZw提取碼:8pow

【BAT必備】mybatis面試題:

鏈接:https://pan.baidu.com/s/1xOYiaiQ2JpPt2jb6GdWjaA提取碼:aqd3

【BAT必備】MongoDB面試題:

鏈接:https://pan.baidu.com/s/1QTVx1TF8tDn6LUJr7wdfOQ提取碼:j1qt

【BAT必備】Linux面試題:

鏈接:https://pan.baidu.com/s/1veZ3dBJmz1PduCE5tl-e1A提取碼:txpf

【BAT必備】kafka面試題:

鏈接:https://pan.baidu.com/s/1SWhiBCswleYGsDupSGzE6g提取碼:o1gv

【BAT必備】jvm面試題:

鏈接:https://pan.baidu.com/s/1xi-QLq_I75kha439EGqELw提取碼:kxde

【BAT必備】javaweb面試題:

鏈接:https://pan.baidu.com/s/1r3Bupn9qhJbw5ebR_6h94A提取碼:qba4

【BAT必備】Java基礎(chǔ)面試題:

鏈接:https://pan.baidu.com/s/1J40nYKIoV_VMCumoRpIyhQ提取碼:5xo7

【BAT必備】dubbo面試題:

鏈接:https://pan.baidu.com/s/10flnh7Tb0Oxd3yZPQOnjsA提取碼:5gc9

【BAT必備】activeMQ面試題:

鏈接:https://pan.baidu.com/s/1igNB64dpMCjCQkRzvqCXpQ提取碼:006a

【BAT必備】分布式相關(guān)面試題大全面試題:

鏈接:https://pan.baidu.com/s/1ZcpJDh07B2NPAL4_4VC6jQ提取碼:w4mw

【BAT必備】java面試題大全:

鏈接:https://pan.baidu.com/s/11jw0Ua4CZiI8-S6EadM_iQ提取碼:epmp

【BAT必備】Java面試匯總

鏈接:https://pan.baidu.com/s/1vG9_cNoiYBW5TY32S4wGnQ提取碼:k087

【BAT必備】2020年多家公司整理的350道Java面試題手冊(cè)

鏈接:https://pan.baidu.com/s/1FEGQVTgiyKG0kCasYn-n2g提取碼:f7y1

【BAT必備】Java全部核心知識(shí)點(diǎn)整理

鏈接:https://pan.baidu.com/s/1StG-ib70TDAE1Hb4NVLQRQ提取碼:5rp1

整理這些非常辛苦,大家點(diǎn)個(gè)贊在走吧

END,本文到此結(jié)束,如果可以幫助到大家,還望關(guān)注本站哦!

返回列表
上一篇:
下一篇: