12 苍狼_2001

尚未进行身份认证

我要认证

程序员之所以犯错误,不是因为他们不懂,而是因为他们自以为什么都懂。

等级
TA的排名 1w+

token作用实现原理以及登录验证机制图解

1:首先,先了解一下request和session的区别request 指在一次请求的全过程中有效,即从http请求到服务器处理结束,返回响应的整个过程,存放在HttpServletRequest对象中。在这个过程中可以使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量。request是用户请求访问的当前组件,以及和当前web组件共享同一用户请求的web组件。如:被请求的jsp页面和该页面用指令包含的页面以及标记包含的其它jsp页面;Session是用户全局变量,在整个会话...

2020-06-16 18:20:14

token作用实现原理以及登录验证机制图解

原理后端不在存储认证信息,而是在用户登录的时候生成一个token,然后返回给前端,前端进行存储,在需要进行验证的时候将token一并发送到后端,后端进行验证加密的方式:对称加密和非对称加密,对称加密指的是加密解密使用同一个密钥,非对称加密使用公钥和私钥,加密用私钥加密,解密用公钥解密主要流程:用户登录的时候,生成token,token 中应该包含 payload (数据) cert (密钥) 确定加密方式返回给前端 cookie,前端进行存储前端在进行数据请求的时候发送token到后端后

2020-06-16 18:17:17

简单理解token机制

在简单理解cookie/session机制这篇文章中,简要阐述了cookie和session的原理。本文将要简单阐述另一个同cookie/session同样重要的技术术语:token。什么是tokentoken的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。简单token的组成;uid(用户唯一的身份标识)、tim

2020-06-16 18:04:00

sql server 查看索引碎片大小,并定期重建索引

查看碎片情况使用 dbcc showcontig 函数来进行代码:--改成当前库use DB_Name--创建变量 指定要查看的表declare @table_id intset @table_id=object_id('TableName')--执行dbcc showcontig(@table_id)DBCC SHOWCONTIG是显示指定的表的数据和索引的碎片信息。解释如下:Page Scanned-扫描页数:如果你知道行的近似尺寸和表或索引里的行数,那么你可以估计出索.

2020-06-15 15:18:06

SQL Server 重建索引|索引重组|索引的碎片检查

什么是索引碎片呢?由于表上有过度地插入、修改和删除操作,索引页被分成多块就形成了索引碎片,如果索引碎片严重,那扫描索引的时间就会变长,甚至导致索引不可用,因此数据检索操作就慢下来了。检查索引碎片SELECT OBJECT_NAME(dt.object_id) , si.name , dt.avg_fragmentation_in_percent, dt...

2020-06-15 15:16:22

[笔记整理]SQL Server 索引碎片 和 重建索引

铺垫知识点:数据库存储本身是无序的,建立了聚集索引,会按照聚集索引物理顺序存入硬盘。既键值的逻辑顺序决定了表中相应行的物理顺序多数情况下,数据库读取频率远高于写入频率,索引的存在 为了读取速度牺牲写入速度页 为最小单位 8kb区物理连续的页(8页)的集合内部碎片 数据库页内部产生的碎片,外部反之碎片的产生:有一个表里有8条数据,已经将一页填满,这个时候要插入第九条数据,页也就分裂了。这就产生了内部碎片。如下图所示(excel示意一下 懒癌晚期)注: 不会将9单独...

2020-06-15 15:14:38

浅谈 exists 和 in 的执行原理及使用场景

exists的执行原理:对外表做loop循环,每次loop循环再对内表(子查询)进行查询,那么因为对内表的查询使用的索引(内表效率高,故可用大表),而外表有多大都需要遍历,不可避免(尽量用小表),故内表大的使用exists,可加快效率;in的执行原理是把外表和内表做hash连接,先查询内表,再把内表结果与外表匹配,对外表使用索引(外表效率高,可用大表),而内表多大都需要查询,不可避免...

2019-11-19 16:22:25

C#反射详解

反射定义  反射提供了封装程序集、模块和类型的对象(Type类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了特性,可以利用反射对它们进行访问。【MSDN】使用场景需要访问程序元数据的特性。 检查和实例化程序集中的类型。 在运行时构建新类型。使用System.Reflection.Emit中的类。 执...

2019-11-08 16:43:06

C# task和timer实现定时操作

C#中,定时器,或者叫作间隔器,每隔一段时间执行一个操作。1.Timer本身就是多线程C#中为不同场合下使用定时器,提供了不同的Timer类,在asp.net中一般使用System.Timers.Timer。这个类也很简单,在微软官方文档可以查看如何使用。C#的timer,本身就封装了线程的操作,所以使用timer不用考虑再开一个线程,它已经是了。2.Task实现定时器我们可...

2019-09-05 14:47:06

C#使用Timer.Interval指定时间间隔与指定时间执行事件

C#中,Timer是一个定时器,它可以按照指定的时间间隔或者指定的时间执行一个事件。指定时间间隔是指按特定的时间间隔,如每1分钟、每10分钟、每1个小时等执行指定事件;指定时间是指每小时的第30分、每天10:30:30(每天的10点30分30秒)等执行指定的事件;在上述两种情况下,都需要使用 Timer.Interval,方法如下:1、按特定的时间间隔:using Syste...

2019-09-05 14:45:47

rabbit 相关文章

1、使用EasyNetQ组件操作RabbitMQ消息队列服务https://www.jianshu.com/p/bba32c82565c2、.net平台的rabbitmq使用封装https://blog.csdn.net/zk65645/article/details/603351093、封装RabbitMQ.NET Library 的一点经验总结https://www.cnb...

2019-08-04 21:54:16

保留小数的位数,不四舍五入

double m1 = 12.3476;//保留两位小数double m3 = Math.Truncate(m1 * 100) / 100;//得到结果是:12.34

2019-08-02 10:21:43

主线程处理子线程的异常

一直接在主线程捕获子线程异常(此方法不可取)using System;using System.Threading;namespace CatchThreadException{ class Program { static void Main(string[] args) { try ...

2019-07-30 09:57:45

SQL Server中@@ROWCOUNT的用法

SQL Server中@@ROWCOUNT返回受上一语句影响的行数,返回值类型为 int 整型。如果行数大于 20 亿,则需要使用 ROWCOUNT_BIG。@@ROWCOUNT和@@ERROR变量的值,在执行完一条语句后总是会发生变化,所以我们将他们作为判断的依据的时候应该首先保存在局部变量中。他们反映的都是紧接着的上一条语句对他们的影响!我们通常可以通过update、insert语句...

2019-07-25 17:36:09

Merge的用法

Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。MERGE 目标表USING 源表ON 匹配条件WHEN MATCHED THEN语句WHEN NOT MATCHED...

2019-07-05 09:57:58

IIS7.5标识介绍

应用程序池的标识是运行应用程序池的工作进程所使用的服务帐户名称。默认情况下,应用程序池以 Network Service用户帐户运行,该帐户拥有低级别的用户权限。您可以将应用程序池配置为以 Windows Server® 2008操作系统中的内置用户帐户之一运行。例如,您可以指定Local System用户帐户,此帐户与 Network Service或 Local Service内置用...

2019-05-16 18:50:30

Fiddler 抓包工具总结

序章Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全。反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能用了之后就忘记了,每次去网站上找也很麻烦,所以搜集各大网络的资料,总结了一些常用的功能。Fiddler 下载地址 :https://www.telerik.com/download/...

2019-03-26 12:02:08

C# Async与Await用法

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace CloudLearning.UI{ class Program { ...

2019-01-15 14:25:31

四种常见的 POST 提交数据方式对应的content-type取值

application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。请求类似于下面这样(无关的请求头在本文中都省略掉了): POST http://www.example.com HTTP...

2019-01-08 16:43:06

.netMVC:Web页面向后台提交数据的方式和选择

众所周知Web前端页面主要由HTML/CSS/Javascript组成,当要通过与用户的交互实现各种功能时,就需要向后台提交一些数据或者操作。在Web世界里各种实现眼花缭乱,但究其根本,不外乎三种方式,这也是由前端脚本、浏览器与后台交互规则决定的。1、通过表单提交这是HTML支持最传统的提交方法,需要创建表单,然后表单包含各种类型的表单元素,还要有一个提交按钮,通过提交按钮来提交到后台,这...

2018-11-15 10:54:16

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。