信息存储

ASP.NET的 Session 详解

£可爱£侵袭症+ 提交于 2019-12-06 13:45:36
Session模型简介 Session是什么呢?简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串,我们会在下面的实验中见到它的实际样子。 这个唯一的SessionID是有很大的实际意义的。当一个用户提交了表单时,浏览器会将用户的SessionID自动附加在HTTP头信息中,(这是浏览器的自动功能,用户不会察觉到),当服务器处理完这个表单后,将结果返回给SessionID所对应的用户。试想,如果没有SessionID,当有两个用户同时进行注册时,服务器怎样才能知道到底是哪个用户提交了哪个表单呢。当然,SessionID还有很多其他的作用,我们会在后面提及到。 除了SessionID,在每个Session中还包含很多其他信息。但是对于编写ASP或ASP.NET的程序与来说,最有用的还是可以通过访问 ASP/ASP.NET的内置Session对象,为每个用户存储各自的信息。例如我们想了解一下访问我们网站的用户浏览了几个页面,我们可能在用户可能访问到每个的页面中加入: <% If

【转】认识JWT

早过忘川 提交于 2019-12-06 13:07:37
1. JSON Web Token是什么 JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。 2. 什么时候你应该用JSON Web Tokens 下列场景中使用JSON Web Token是很有用的: Authorization (授权) : 这是使用JWT的最常见场景。一旦用户登录,后续每个请求都将包含JWT,允许用户访问该令牌允许的路由、服务和资源。单点登录是现在广泛使用的JWT的一个特性,因为它的开销很小,并且可以轻松地跨域使用。 Information Exchange (信息交换) : 对于安全的在各方之间传输信息而言,JSON Web Tokens无疑是一种很好的方式。因为JWTs可以被签名,例如,用公钥/私钥对,你可以确定发送人就是它们所说的那个人。另外,由于签名是使用头和有效负载计算的,您还可以验证内容没有被篡改。 3. JSON Web Token的结构是什么样的 JSON Web Token由三部分组成,它们之间用圆点(.)连接。这三部分分别是: Header Payload Signature 因此,一个典型的JWT看起来是这个样子的: xxxxx.yyyyy.zzzzz 接下来,具体看一下每一部分:

面试

最后都变了- 提交于 2019-12-06 09:09:25
面试 1、面试指导方针 在面试官问到技术的时候 是什么?有什么特点? what 为什么用它? why 在项目的哪一个地方用过? 使用的具体步骤?使用过程中问题总结? how 2、面试自我介绍之大套路 3、排序算法? 冒泡排序: 每次拿两个数进行比较,总是把小的放在最前面,大的放在最后面,第二次是第二个数和第三个数比较,如果第三个小于第二个,那么第三个和第二个替换位置,一次这样比较替换,第一轮循环完了呢,放在最后面的那个数就是这 一串数字中最大的数。第二轮循环和第一轮一样,第一个和第二个比较,最小的放在最前面,依次类推。如果有10个数字,那么就进行9次循环,最小的在最前面,最大的放在最后面。 好处呢,就是查询速度快 二分查找: 二分查找就是从一串数字中找到某个数字。 原理就是必须有一串数字是从小到大排序,把这串数字进行划分,分为三段,前半段,中止段,和中止后半段。查找数字或者字符先从中止段查找,查到的数字或者字符和中止正好相等,那么久直接取出来,如果比它大就从后半段查找,后半段在进行二分法,进行递归的调用查找,如果比中止小,走前面的中止段,在进行拆分,进行二分查找法。 4、说一下你对Spring的理解? 关于Spring的话,我们平时做项目一直都在用,不管是使用ssh还是使用ssm,都可以整合。Spring里面主要的就三点,也就是核心思想,DI,IOC,AOP。 DI就是依赖注入

一文彻底搞懂Cookie、Session、Token到底是什么

久未见 提交于 2019-12-06 08:35:18
> 笔者文笔功力尚浅,如有不妥,请慷慨指出,必定感激不尽 Cookie 洛:大爷,楼上322住的是马冬梅家吧? 大爷:马都什么? 夏洛:马冬梅。 大爷:什么都没啊? 夏洛:马冬梅啊。 大爷:马什么没? 夏洛:行,大爷你先凉快着吧。 在了解这三个概念之前我们先要了解HTTP是无状态的Web服务器,什么是无状态呢?就像上面夏洛特烦恼中经典的一幕对话一样,一次对话完成后下一次对话完全不知道上一次对话发生了什么。如果在Web服务器中只是用来管理静态文件还好说,对方是谁并不重要,把文件从磁盘中读取出来发出去即可。但是随着网络的不断发展,比如电商中的购物车只有记住了用户的身份才能够执行接下来的一系列动作。所以此时就需要我们无状态的服务器记住一些事情。 那么Web服务器是如何记住一些事情呢?既然Web服务器记不住东西,那么我们就在外部想办法记住,相当于服务器给每个客户端都贴上了一个小纸条。上面记录了服务器给我们返回的一些信息。然后服务器看到这张小纸条就知道我们是谁了。那么 Cookie 是谁产生的呢?Cookies是由服务器产生的。接下来我们描述一下 Cookie 产生的过程 浏览器第一次访问服务端时,服务器此时肯定不知道他的身份,所以创建一个独特的身份标识数据,格式为 key=value ,放入到 Set-Cookie 字段里,随着响应报文发给浏览器。 浏览器看到有 Set-Cookie

《浅入浅出》-RocketMQ

风流意气都作罢 提交于 2019-12-06 07:49:21
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点脑图、个人联系方式和技术交流群,欢迎Star和指教 前言 消息队列 在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在 消息队列 的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚( 请允许我使用一下夸张的修辞手法 )。 于是在一个寂寞难耐的夜晚,我痛定思痛,决定开始写 《吊打面试官》 系列,希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,让一同面试的同僚瞠目结舌,疯狂收割大厂Offer! 捞一下 消息队列系列前面两章分别讲了 消息队列 的基础知识,还有比较常见的问题和常见分布式事务解决方案,那么在实际开发过程中,我们使用频率比较高的消息队列中间件有哪些呢? 帅丙我工作以来接触的消息队列中间件有 RocketMQ 、 Kafka 、 自研 ,是的因为我主要接触的都是电商公司,相对而言业务体量还有场景来说都是他们比较适合,再加上杭州阿里系公司偏多,身边同事或者公司老大基本都是阿里出来创业的,那在使用技术栈的时候 阿里系的开源框架 也就成了首选。

Hadoop — HDFS的概念、原理及基本操作

旧城冷巷雨未停 提交于 2019-12-06 06:12:05
Hadoop — HDFS的概念、原理及基本操作 https://www.cnblogs.com/swordfall/p/8709025.html 分类: Hadoop undefined 1. HDFS的基本概念和特性 设计思想——分而治之:将大文件、大批量文件分布式存放在大量服务器上, 以便于采取分而治之的方式对海量数据进行运算分析 。在大数据系统中作用:为各类分布式运算框架(如:mapreduce,spark,tez,....)提供数据存储服务。 1.1 HDFS的概念 首先,它是一个文件系统,用于存储文件,通过统一的命名空间--目录树来定位文件; 其次,它是分布式的,有很多服务器联合起来实现其功能,集群中的服务器有各自的角色; 重点概念:文件切块,副本存放,元数据(目录结构及文件分块信息) 1.2 HDFS的重要特性 (1) HDFS中的文件在物理上是 分块存储(block) ,块的大小可以通过配置参数(dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M; (2) HDFS文件系统会给客户端提供一个 统一的抽象目录树 ,客户端通过路径来访问文件,形如:hdfs://namenode:port/dir-a/dir-b/file.data; (3) 目录结构及文件分块信息(元数据) 的管理由namenode节点承担

EMC存储平台Symmetrix DMX-3在淘宝网成功应用 at Taobao DBA Team

左心房为你撑大大i 提交于 2019-12-06 06:02:56
EMC存储平台Symmetrix DMX-3在淘宝网成功应用 作者:拖雷 | 【转载时请务必以超链接形式标明文章原始出处和作者信息及本声明】 地址:http://rdc.taobao.com/blog/dba/html/59_emc-dmx3-in-taobao.html 这是去年我跟EMC合作写的一个Case,其实很多地方都转贴过了,今天再把它永久记录到这里。 案例概要   淘宝网:亚洲最大网络购物平台,亚洲首选网络购物商圈   行业:互联网   地区:总部设在杭州   EMC Documentum产品:   ?? EMC Symmetrix DMX-3   ?? EMC CLARiiON CX-80   实施情况:   2007年上半年开始采用EMC Symmetrix DMX-3,使用效果良好。   合作伙伴:神州数码   作为亚洲最大的网络购物平台,淘宝网2007年上半年的总成交额突破157亿人民币,接近2006年全年成交额(169亿人民币),和2006年同期相比,增长了近200%。跟传统卖场比较,2007年上半年,淘宝网的日均成交额相当于122个家乐福大卖场或者150家沃尔玛大卖场。 需求:解决原有平台的性能瓶颈   淘宝网巨大的交易量,是在比传统商城大得多的人流量的情况下完成的。   2007年上半年,每天登陆淘宝购物的不重复访问者超过600万

每个开发人员必须知道PDB文件知识

和自甴很熟 提交于 2019-12-05 23:40:26
大多数开发人员都意识到PDB文件有助于您进行调试,但仅此而已。如果你不知道PDB文件是怎么回事,不要觉得很糟糕,因为虽然有文档在那里,但它分散在周围,而且大部分是为编译器和调试器编写器准备的。虽然编写编译器和调试器非常酷和有趣,但这可能不是你的工作。 我想做的是把每个在微软操作系统上进行开发的人都必须知道的PDB文件放在一个地方。这些信息也适用于本机开发人员和托管开发人员,不过我将提到一个特定于托管开发人员的技巧。我将从讨论PDB文件存储和内容开始。由于调试器使用PDB文件,我将详细讨论调试器如何为二进制文件找到正确的PDB文件。最后,我将讨论调试器在调试时如何查找源文件,并向您展示一个与调试器如何查找源代码相关的常用技巧。 在我们开始之前,我需要定义两个重要的术语。在开发计算机上执行的生成是私有生成。在生成计算机上完成的生成是公共生成。这是一个重要的区别,因为调试在本地生成的二进制文件很容易,总是公共生成导致问题。 所有开发人员需要知道的最重要的事情是:PDB文件和源代码一样重要!很多公司没有人能找到在生产服务器上运行的构建的PDB文件。如果没有匹配的PDB文件,您的调试挑战几乎是不可能的。通过大量的努力,可以在没有正确的PDB文件的情况下找到问题,但是如果您首先拥有正确的PDB文件,它将为您节省大量的资金。 正如Visual Studio的开发经理约翰坎宁安(John

JWT的优劣

好久不见. 提交于 2019-12-05 21:52:19
优 1:Stateless - 无状态 2:Portable - 一个Token可以同时被多个不同语言/平台的后端接收认证 3:不依赖于Cookie(虽然JWT的存储方式还是建议使用HttpOnly+Secure方式存储,但毕竟有些人就是不喜欢Cookie) 4:性能问题(完善的客户端使用JWT可以减少与服务器间的通讯次数,像性别爱好这种非敏感信息,认证一次JWT完全可以LocalStorage存储) 5:Decoupled/Decentralized - JWT可以在任何地方生成,认证也能在任何地方 劣 1.没法让单独的一个 JWT token 失效(通常的解决方案是在服务端存储jwt token,但如此一来 就把无状态变成了有状态) 2.当一个用户更新了自己的个人信息之后,之前签发的 JWT token 中的信息将会变得过时 来源: https://www.cnblogs.com/ephemeral/p/11946730.html

Android获取存储信息

孤街醉人 提交于 2019-12-05 20:05:55
5.1和6.0以上获取SD卡和USB(OTG)存储大小: 要获取存储设备的存储大小,先需要获取设备的路径,我这里的设备SD卡都只有一张,固定为/mnt/external_sd,USB口可能有多个,网上说的一般是/mnt/usb_storage,但我找个几个5.1的平板都获取不到,最后通过adb shell df查看到了usb的实际路径并打印出所有路径,重新写了份获取USB路径的流程,整理如下: https://blog.csdn.net/l471979773/article/details/84890492 public class StorageUtil { Context context; private String usb_dir = null; private String sdcard_dir = null; private List<String> sdcard_list = null; private List<String> usb_list = null; String TAG ="StorageUtil" ; public StorageUtil(Context context) { this.context = context; sdcard_list = new ArrayList<String>(); usb_list = new ArrayList