Http會(huì)話與微服務(wù)無狀態(tài)的遐想

我們知道卵佛,會(huì)話是一種機(jī)制杨赤,用于跟蹤客戶狀態(tài)的普遍解決方案。在網(wǎng)站上一系列的動(dòng)作可構(gòu)成一個(gè)會(huì)話级遭,比如望拖,登陸查看郵件系統(tǒng)渺尘,寫信發(fā)信挫鸽,最后退出,整個(gè)過程鸥跟。

對(duì)于瀏覽器訪問服務(wù)器來說丢郊,Servlet容器會(huì)創(chuàng)建HttpSession會(huì)話。當(dāng)然医咨,這前提是需要瀏覽器支持會(huì)話枫匾,可以在jsp中控制(而不是在瀏覽器中設(shè)置來控制,即不受用戶控制拟淮,對(duì)用戶是透明的)干茉。會(huì)話不會(huì)一直存在,也會(huì)銷毀很泊。具體如下:

《Tomcat與JavaWeb開發(fā)技術(shù)詳解》

會(huì)話過期具有的意義:

1角虫、長時(shí)間會(huì)話不活動(dòng),及時(shí)銷毀委造,可以釋放無效HttpSession對(duì)象占用的內(nèi)存空間戳鹅;

2、防止未授權(quán)的用戶訪問會(huì)話昏兆,當(dāng)用戶長時(shí)間不操作枫虏,會(huì)話結(jié)束,就要重新登陸(防止偷窺)。

注意: 即使web應(yīng)用被終止隶债,會(huì)話不會(huì)被銷毀腾它,而是被Tomcat持久化到永久性存儲(chǔ)設(shè)備中,當(dāng)web重啟后死讹,Tomcat會(huì)重新加載會(huì)話携狭。(這些都不用開發(fā)者關(guān)心,Tomcat和Servlet容器替開發(fā)者做了太多的事情回俐,甚至開發(fā)者都不知道逛腿,我以前就是這樣,仅颇,太強(qiáng)大有木有)单默。

——————

對(duì)于JSP來說,Servlet容器提供了隱含的HttpSession對(duì)象忘瓦,jsp可以直接通過固定引用變量來引用HttpSession對(duì)象搁廓,對(duì)√,就是直接用耕皮。你不用管它怎么創(chuàng)建的境蜕,甚至哪里來的,直接用凌停!(當(dāng)然粱年,這些都是Servlet容器悄悄的幫你做了)

會(huì)話范圍與HttpSession對(duì)象的生命周期對(duì)應(yīng),因此web應(yīng)用如果能夠共享一個(gè)HttpSession對(duì)象罚拟,也就能共享會(huì)話范圍內(nèi)的共享數(shù)據(jù)台诗。

對(duì)于xxxServlet,可以從HttpServletRequest對(duì)象中獲取HttpSession對(duì)象赐俗。

——————

session和cookie拉队??

cookie是一種客戶端和服務(wù)器端傳輸數(shù)據(jù)的一種手段阻逮,用于標(biāo)識(shí)同一個(gè)session(比如JSESSIONID粱快,它是cookie的一個(gè)key,用來標(biāo)識(shí)一次session叔扼,cookie的value就是sessionid)事哭。坦白的說,cookie什么都不是币励,只是一種名稱慷蠕,叫其他什么都無所謂,只是這種名稱已經(jīng)變成標(biāo)準(zhǔn)了食呻。

延伸:

我們知道流炕,HTTP是無狀態(tài)的協(xié)議澎现,而現(xiàn)在流行的微服務(wù)架構(gòu),都在講無狀態(tài)每辟,上面的session和cookie的目的是為了達(dá)到有狀態(tài)的會(huì)話剑辫,為了記錄是哪個(gè)用戶的哪個(gè)瀏覽器所執(zhí)行的這一組操作。這不是矛盾嗎渠欺?妹蔽?筆者現(xiàn)在的理解是,確實(shí)矛盾挠将。通過前面的了解胳岂,如果瀏覽器首次訪問時(shí),服務(wù)器端會(huì)響應(yīng)寫一個(gè)cookie到瀏覽器舔稀,讓后在這一個(gè)瀏覽器進(jìn)程內(nèi)乳丰,瀏覽器后面發(fā)的請(qǐng)求都會(huì)自動(dòng)地(注意是自動(dòng)的)帶上服務(wù)器端生成的cookie。然而内贮,使用過REST API編程或者postman客戶端的童鞋都有經(jīng)歷产园,那就是這些都不能自動(dòng)地保存服務(wù)器端生成的cookie,并且也不會(huì)再次訪問時(shí)自動(dòng)地帶上夜郁。(客戶端是什么樣的永遠(yuǎn)不會(huì)影響服務(wù)器端的什燕,服務(wù)器端該做什么該做什么,這里唯一變化的就是客戶端變了竞端,不再自動(dòng)地的維持session了屎即。導(dǎo)致這樣一個(gè)問題,即使你連續(xù)的請(qǐng)求相隔時(shí)間再短婶熬,服務(wù)器端總會(huì)認(rèn)為你是一個(gè)嶄新的客戶端剑勾,所以微服務(wù)就必須要做成無狀態(tài)的埃撵,每一次請(qǐng)求都是獨(dú)立的赵颅,因?yàn)樗鼜谋举|(zhì)上就不能夠支持有狀態(tài),就不能夠維持會(huì)話暂刘,你的所有的請(qǐng)求都必須毫不相干饺谬,起碼不能有任何的會(huì)話的機(jī)制在里面)。

原來谣拣,瀏覽器也悄悄地幫你做了很多事情(都是HTTP的規(guī)約)募寨。。森缠。而這些事情像postman這樣的rest客戶端卻沒有幫你做拔鹰,你自己編程訪問rest api也沒有做。

為什么贵涵?是不能做嗎列肢,肯定不是咯恰画。我想可能有三點(diǎn),一是增加開發(fā)的難度瓷马,加大了系統(tǒng)的復(fù)雜度拴还;二是系統(tǒng)需要維護(hù)會(huì)話的開銷,對(duì)于靈活小巧的微服務(wù)來講欧聘,顯然是相悖的片林;三是考慮到微服務(wù)應(yīng)用所在的宿主機(jī)down掉了,不能在另一臺(tái)宿主機(jī)迅速拉起就能服務(wù)怀骤,因?yàn)橐獮閿?shù)據(jù)的一致性考慮费封,增加一致性解決方案。

以上均屬于筆者臆想蒋伦,不對(duì)之處孝偎,歡迎指正!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凉敲,一起剝皮案震驚了整個(gè)濱河市衣盾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌爷抓,老刑警劉巖势决,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蓝撇,居然都是意外死亡果复,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門渤昌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虽抄,“玉大人,你說我怎么就攤上這事独柑÷蹩撸” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵忌栅,是天一觀的道長车酣。 經(jīng)常有香客問我,道長索绪,這世上最難降的妖魔是什么湖员? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮瑞驱,結(jié)果婚禮上娘摔,老公的妹妹穿的比我還像新娘。我一直安慰自己唤反,他們只是感情好凳寺,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布嫡丙。 她就那樣靜靜地躺著,像睡著了一般读第。 火紅的嫁衣襯著肌膚如雪曙博。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天怜瞒,我揣著相機(jī)與錄音父泳,去河邊找鬼。 笑死吴汪,一個(gè)胖子當(dāng)著我的面吹牛惠窄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播漾橙,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼杆融,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了霜运?” 一聲冷哼從身側(cè)響起脾歇,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎淘捡,沒想到半個(gè)月后藕各,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡焦除,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年激况,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膘魄。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乌逐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出创葡,到底是詐尸還是另有隱情浙踢,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布蹈丸,位于F島的核電站成黄,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏逻杖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一思瘟、第九天 我趴在偏房一處隱蔽的房頂上張望荸百。 院中可真熱鬧,春花似錦滨攻、人聲如沸够话。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽女嘲。三九已至畜份,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間欣尼,已是汗流浹背爆雹。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留愕鼓,地道東北人钙态。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像菇晃,于是被迫代替她去往敵國和親册倒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容