cookie和session(1)

cookie和session

1.cookie產生

識別用戶?
HTTP是無狀態協議,這就回出現這種現象:當你登錄一個頁面,然后轉到登錄網站的另一個頁面,服務器無法認識到。或者說兩次的訪問,服務器不能認識到是同一個客戶端的訪問,這就讓你重復登錄,所以產生了cookie。?
cookie:第一次訪問一個服務器,不攜帶cookie,這時服務器在響應(response)下行HTTP報文中,命令瀏覽器攜帶cookie信息;瀏覽器再訪問同一個域的時候,將把cookie信息攜帶到請求(request)上行HTTP請求中,從而實現了HTTP模擬有了狀態。

2.cookie特點

  • cookie是不加密的

  • cookie是可以被篡改和攻擊

  • cookie大小受到限制

3.node使用

//使用cookie必須要使用cookie-parser中間件

var cookieParser = require('cookie-parser');

app.use(cookieParser());

express中的cookie: res負責設置cookie, req負責識別cookie。?
cookie用來制作記錄用戶的一些信息,如購買歷史、猜你喜歡、訪問量等

現在看session

4.session產生

由于cookie明文等一些不足所以產生了session?
session依賴cookie,就是利用cookie,實現的“會話”,因此當cookie被禁用,session也無法使用。?
session比cookie不一樣在哪里呢? session會下發一個秘鑰(cookie)(亂碼),客戶端每次訪問都攜帶這個秘鑰,那么服務器如果發現這個秘鑰吻合,就能夠顯示這個用戶曾經保存的信息。?
任何語言中,session的使用,是“機理透明”的,也就是讓你感覺不到這事兒和cookie有關

5.session特點和使用

session是加密的

var session = reqiure("express-session");

app.use(session({

? ? ? ?..一些配置

})); ? ?

app.get("/",function(req,res){

? ?console.log(req.sission.login);

}); ? ?

app.get("/login",function(req,res){

? ? ? ? req.session.login = "1";

});

都是req對象?
Session存在于服務器的內存中,如果服務器重啟就會丟失session同時需要重新登錄

6.cookie和session不同

  • cookie數據存放在客戶的瀏覽器上;session數據放在服務器緩存中。

  • cookie是明文,不安全,別人利用cookie可以被篡改和攻擊;而session存放服務器緩存中并且加密的,其他用戶看不到。

  • session會在一定時間內保存在服務器上。當用戶訪問增多,會比較占用你服務器內存,考慮到減輕服務器性能方面,使用cookie。

  • 單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie;session的密鑰(cookie),可以對應可以對應無限大的數據

?

?

轉載于:https://www.cnblogs.com/wyliunan/p/7452815.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/391538.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/391538.shtml
英文地址,請注明出處:http://en.pswp.cn/news/391538.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

熊貓數據集_為數據科學拆箱熊貓

熊貓數據集If you are already familiar with NumPy, Pandas is just a package build on top of it. Pandas provide more flexibility than NumPy to work with data. While in NumPy we can only store values of single data type(dtype) Pandas has the flexibility to st…

2018年,你想從InfoQ獲取什么內容?丨Q言Q語

- Q 言 Q 語 第 三 期 - Q言Q語是 InfoQ 推出的最新板塊, 旨在給所有 InfoQer 一個展示觀點的平臺。 每期一個主題, 不扣帽子,不論對錯,不看輸贏, 只愿跟有趣的靈魂相遇。 本期話題: 2018年,你想…

特征阻抗輸入阻抗輸出阻抗_軟件阻抗說明

特征阻抗輸入阻抗輸出阻抗by Milan Mimica米蘭米米卡(Milan Mimica) 軟件阻抗說明 (Software impedance explained) 數據處理組件之間的阻抗不匹配 (The impedance mismatch between data processing components) It all starts with the simplest signal-processing diagram …

數學建模3

數學建模3 轉載于:https://www.cnblogs.com/Forever77/p/11423169.html

leetcode 190. 顛倒二進制位(位運算)

顛倒給定的 32 位無符號整數的二進制位。 提示: 請注意,在某些語言(如 Java)中,沒有無符號整數類型。在這種情況下,輸入和輸出都將被指定為有符號整數類型,并且不應影響您的實現,因…

JAVA基礎——時間Date類型轉換

在java中有六大時間類,分別是: 1、java.util包下的Date類, 2、java.sql包下的Date類, 3、java.text包下的DateFormat類,(抽象類) 4、java.text包下的SimpleDateFormat類, 5、java.ut…

LeetCode第五天

leetcode 第五天 2018年1月6日 22.(566) Reshape the Matrix JAVA class Solution {public int[][] matrixReshape(int[][] nums, int r, int c) {int[][] newNums new int[r][c];int size nums.length*nums[0].length;if(r*c ! size)return nums;for(int i0;i<size;i){ne…

matplotlib可視化_使用Matplotlib改善可視化設計的5個魔術技巧

matplotlib可視化It is impossible to know everything, no matter how much our experience has increased over the years, there are many things that remain hidden from us. This is normal, and maybe an exciting motivation to search and learn more. And I am sure …

adb 多點觸碰_無法觸及的神話

adb 多點觸碰On Twitter, in Slack, on Discord, in IRC, or wherever you hang out with other developers on the internet, you may have heard some formulation of the following statements:在Twitter上&#xff0c;在Slack中&#xff0c;在Discord中&#xff0c;在IRC…

robot:循環遍歷數據庫查詢結果是否滿足要求

使用list類型變量{}接收查詢結果&#xff0c;再for循環遍歷每行數據&#xff0c;取出需要比較的數值 轉載于:https://www.cnblogs.com/gcgc/p/11424114.html

leetcode 74. 搜索二維矩陣(二分)

編寫一個高效的算法來判斷 m x n 矩陣中&#xff0c;是否存在一個目標值。該矩陣具有如下特性&#xff1a; 每行中的整數從左到右按升序排列。 每行的第一個整數大于前一行的最后一個整數。 示例 1&#xff1a; 輸入&#xff1a;matrix [[1,3,5,7],[10,11,16,20],[23,30,34…

rm命令

命令 ‘rm’ &#xff08;remove&#xff09;&#xff1a;刪除一個目錄中的一個或多個文件或目錄&#xff0c;也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉 語法&#xff1a;rm&#xff08;選項&#xff09;&#xff08;參數&#xff09; 默認會提示‘是否’刪除&am…

javascript消除字符串兩邊空格的兩種方式,面向對象和函數式編程。python oop在調用時候的優點...

主要是javascript中消除字符串空格&#xff0c;比較兩種方式的不同 //面向對象&#xff0c;消除字符串兩邊空格 String.prototype.trim function() { return this.replace(/(^\s*)|(\s*$)/g, ""); };//去左右空格的函數; function trim(s){return s.replace(/(^\s*)…

如何使用Retrofit,OkHttp,Gson,Glide和Coroutines處理RESTful Web服務

Kriptofolio應用程序系列-第5部分 (Kriptofolio app series — Part 5) These days almost every Android app connects to internet to get/send data. You should definitely learn how to handle RESTful Web Services, as their correct implementation is the core knowle…

leetcode 90. 子集 II(回溯算法)

給你一個整數數組 nums &#xff0c;其中可能包含重復元素&#xff0c;請你返回該數組所有可能的子集&#xff08;冪集&#xff09;。 解集 不能 包含重復的子集。返回的解集中&#xff0c;子集可以按 任意順序 排列。 示例 1&#xff1a; 輸入&#xff1a;nums [1,2,2] 輸…

robot:linux下安裝robot環境

https://www.cnblogs.com/lgqboke/p/8252488.html 轉載于:https://www.cnblogs.com/gcgc/p/11425588.html

感知器 機器學習_機器學習感知器實現

感知器 機器學習In this post, we are going to have a look at a program written in Python3 using numpy. We will discuss the basics of what a perceptron is, what is the delta rule and how to use it to converge the learning of the perceptron.在本文中&#xff0…

JS解析格式化Json插件,Json和XML互相轉換插件

Json對象轉換為XML字符串插件 http://www.jsons.cn/Down/jquery.json2xml.js var xml_content $.json2xml(json_object);XML字符串轉換為Json對象插件 http://www.jsons.cn/Down/jquery.xml2json.js var json_obj $.xml2json(xml_content);json序列化和反序列化方法插件 …

Python之集合、解析式,生成器,函數

一 集合 1 集合定義&#xff1a; 1 如果花括號為空&#xff0c;則是字典類型2 定義一個空集合&#xff0c;使用set 加小括號使用B方式定義集合時&#xff0c;集合內部的數必須是可迭代對象&#xff0c;數值類型的不可以 其中的值必須是可迭代對象&#xff0c;其中的元素必須是可…

深度神經網絡課程總結_了解深度神經網絡如何工作(完整課程)

深度神經網絡課程總結Even if you are completely new to neural networks, this course from Brandon Rohrer will get you comfortable with the concepts and math behind them.即使您是神經網絡的新手&#xff0c;Brandon Rohrer的本課程也會使您熟悉其背后的概念和數學。 …