大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

代理(计算机技术术语)

代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)和INTRANET(局域网)。C#语言中,代理是指Delegate,也翻译为委托。C#中的delegate和C++中的函数指针基本是一回事,C#正是以delegate的形式实现了函数指针。不同的地方在于C#中delegate是类型安全的。delegate仅仅关注涉及的方法(函数)的细节。它是一种类型,这种类型的变量可以用来赋值不同(但类似)的方法(函数)。说白了,即是将处理代码“放置”到变量中,“执行”这个变量,就是执行这个变量中“放置”的代码。

浅谈Charles抓取HTTPS原理

浅谈Charles抓取HTTPS原理 在关于HTTPS,你需要知道的全部中,分析了HTTPS的安全通信过程,知道了HTTPS可以有效防止中间人攻击。但用过抓包工具的人都知道,比如Charles,Fiddler是可以抓取HTTPS请求并解密的,它们是如何做到的呢? 首先来看Charles官网对HTTPS代理的描述: Charles can be used as a man-in-the-middle HTTPS proxy

JavaScript设计模式

' }) }, 1000) }) 工厂方式创建对象与new创建对象相比,书写简便并且封装性更好。 2.2 单例模式 介绍 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 注释:单例模式的核心是确保只有一个实例,并提供全局访问。 代码演示 class Single { login() { console.log('login') } } Single.getInstance = (function() { let instance return () = { if(!

Webpack操作指南

bundle.js', path: path.resolve(__dirname, 'release') } 执行打包命令 npm run dev webpack打包输出几个bundle文件并不是由模块依赖树决定,而是根据打包配置文件中的output决定。即使src/index.js文件引入了src/print.js文件,仍会将后者打包输出为单独的bundle。 清理打包文件 安装依赖 npm install clean-webpack-plugin --save-dev 编辑打包配置文件 webpack.dev.config.js const CleanWebpackPlugin = require('clean-webpack-plugin');

C# 中使用面向切面编程(AOP)中实践代码整洁

return result; _logger = logger; 但是这样的调用方法还是不尽人意,想象如果某个对象有三四个装饰器,那么我们创建实例的时候就需要多次传递。一个解决方法是 借助依赖注入 (DI) ,只需注册一次服务类型,避免通过创建实例来获取对象。另外,对于 . } public void OnException(Exception exception) { } } 最后还需要一个 AssemblyInfo.cs 来配置哪些 Attribute 类产生作用。 //AssemblyInfo.cs using System;

基于Asp.Net Core打造轻量级内部服务治理RPC(一)

基于Asp.Net Core打造轻量级内部服务治理RPC(一) 继之前的《Asp.Net Core + Docker 搭建》文章末尾说过的,将陆续编写基于asp.net core 打造一个内部服务治理的rpc框架。不过前端时间较忙,所以搁置了一段时间。闲话不多说,下面就来讲讲为什么需要去做一个该框架,以及想法的来源和设计思路。 一、产生背景 公司技术栈是以微软栈为主。整个平台的业务并不是特别复杂。因此先前

HTML页面加载速度优化

若压缩需要指定任务顺序,则需要引入run-sequence,return runSequence( 'task1-name','task2-name','task3-name'); var pngquant = require('imagemin-pngquant'); 参考文章 Web前端性能优化——如何提高页面加载速度 gulp-imagemin、gulp-tinypng-compress、gulp-tinypng-nokey图片压缩优化详解及对比 彻底理解浏览器缓存机制 web性能优化之:no-cache与must-revalidate深入探究 HTTP响应头之ETag 浏览器同域名请求的最大并发数限制

AspectJ在Spring中的使用

} } 这个时候method2是无法被切到的,要想被切到可以通过如下奇葩的方式: @Component public class A{ @Autowired private A a; } 在AjType中就能获取到很多其他的aspectJ所需的相关信息(除了java反射所能获取到的信息以外) /** * Return the pointcut object representing the specified pointcut declared by this type */ public Pointcut getDeclaredPointcut(String name) throws NoSuchPointcutException;

探讨Spring中Transactional 失效的解决方案

探讨Spring中Transactional 失效的解决方案 关于@Transactional注解 一般都认为要注意以下三点 1 . @Transactional 注解只能应用到 public 可见度的方法上 。 如果你在 protected、private 或者 package-visible 的方法上使用 @Transactional 注解,它也不会报错, 但是这个被注解的方法将不会展示已配置的事务设置。 3 .

Java初中级程序员面试题宝典

List、Map、Set 三个接口,存取元素时,各有什么特点? WebService实现原理是? 说一下什么是Http协议? 什么是Http协议无状态协议?怎么解决Http协议无状态协议?(曾经去某创业公司问到) 说一下Http协议中302状态(阿里经常问) Http协议有什么组成? Http协议中有那些请求方式? OPTIONS:查询相应URI支持的HTTP方法。 Http协议中Http1.0与1.

javascript 中的自动化—元编程(下)

javascript 中的自动化—元编程(下) 今天继续给大家分享 js 中的元编程,内容主要是通过几个例子,来演示一下元编程在实际用中的使用,这里可以用元编程来输出日志,日志内容可以用于观察程序的运行状况。也可以用元编程来实现观察者模式,用元编程来实现观察者模式,非常简单。 1. 访问日志,使用 proxy 我们复写其 get 方法(get 方法对应于 (.)点操作符,获取属性

10个常见软件架构

10个常见软件架构 原文参见:10 Common Software Architectural Patterns in a nutshell 在开始一个大型项目之前,我们需要进行详细的系统分析,尽量选择合适的架构,这样方便我们快速交付和后期维护升级,这篇文章总结了10种常见的架构模式。在阅读这篇文章的时候,我想到了之前读过的一本书——《企业应用架构模式》,这本书偏理论,但是对理解大型系统的构建很有帮助。 架构模

《Hacknet》故事向攻略 —— 第五章 线索(上)

《Hacknet》故事向攻略 —— 第五章 线索(上) 在加入了CSEC过后,我才知道Bit原来是CSEC的一员,并且还是在这个组织内排名第一的黑客,虽说Bit在黑客圈子里一直都特别有名,不过我还真的一直都不知道他隶属于CSEC。 第四章 (生涯起始 下):https://dfkan.com/3589.htmll (接上回) 现在还是看看能接到的任务吧,证明自己的价值才能提升自己在CSEC内的位置,只有这样我才有可能

Minikube 安装采坑记

解释做了些什么,我猜测的: 下载minikube iso,存储位置为~/.minikube/cache/iso/minikube-v0.32.0.iso 下载kubeadm,存储位置为~/.minikube/cache/v1.12.4/kubeadm 下载kubelet,存储位置为~/.minikube/cache/v1.12.4/kubelet 创建并启动虚拟机 将需要的文件拷入虚拟机 使用kubeadm安装kubernetes kubeadm会下载镜像,并启动镜像 注意:~/.

Nginx访问日志配置

#关闭access_log,即不记录访问日志 access_log path [format [buffer=size [flush=time]] [if=condition]]; open_log_file_cache max=1000 inactive=60s; open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2; http, server, location 启用时将在error log中记录notice级别的重写日志。 error_log指令 语法 默认值 配置段 error_log file | stderr | syslog:server=address[,parameter=value] [de bug |info | notice| warn | error| crit | alert | emerg];

基础设施与应用监控之监控与报警实践

基础设施与应用监控之监控与报警实践 介绍 监控系统有助于提高基础架构和应用程序的可视性,并定义可接受的性能和可靠性范围。通过了解要测量的组件以及针对不同方案关注的最合适的指标,您可以开始规划涵盖服务的所有关键部分的监控策略。在我们关于从您的基础架构和应用程序收集指标的指南中,我们引入了一个流行的框架来识别高价值指标,然后将部署分层,

nginx 反向代理进行yum配置

#listen [::]:80;release=$releasever arch=$basearch repo=centosplus gpgcheck=1 enabled=0 gpgkey=http://mirrors.yourdomain.com/centos/RPM-GPG-KEY-CentOS-7 #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib - mirrors.yourdomain.com failovermethod=priority baseurl=http://mirrors.yourdomain.com/centos/$releasever/contrib/$basearch/ http://mirrors.yourdomain.com/centos/$releasever/contrib/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?

macos,使用nginx设置mysql反向代理

server 127.0.0.1:3306 max_fails=3 fail_timeout=30s; } server { listen 3305; proxy_timeout 600s; proxy_pass mysql; } } 此时,我们使用与macos处于同一个局域网的电脑,打开navicat,设置访问的地址为 MACOS电脑IP,端口设置为3305,即可访问。当然也可以使用navicat的还原功能,来快速还原数据库了。

MyBatis 源码阅读之数据库连接

} } 虽然它的代码极少,实际上都在 PooledDataSource 类中。 DataSource 看完了工厂类,我们来看看 MyBatis 提供的两种数据源类: UnpooledDataSource 和 PooledDataSource 。 UnpooledDataSource UnpooledDataSource 看名字就知道是没有池化的特征,相对也简单点,以下代码省略一些不重要的方法 import java.sql.Connection; } // 废弃原先的对象 PooledConnection newConn = new PooledConnection(conn.getRealConnection(), this);

初探 Vue3.0 中的一大亮点——Proxy !

初探 Vue3.0 中的一大亮点——Proxy ! proxyObj.a = 666; // 30 另外,该方法必须返回一个对象,否则会抛出异常! var p = new Proxy(function() {}, { construct: function(target, argumentsList, newTarget) { return 2 } }); //需要代理的数据对象 const data = { text: 'hello world' } const handler = { //监控 data 中的 text 属性变化 set: function (target, prop, value) { if ( prop === 'text' ) { //更新值 target[prop] = value;

ES6 系列之 defineProperty 与 proxy

// 设置 get 操作 // 35 除了 get 和 set 之外,proxy 可以拦截多达 13 种操作,比如 has(target, propKey),可以拦截 propKey in proxy 的操作,返回一个布尔值。 // 使用 has 方法隐藏某些属性,不被 in 运算符发现 var handler = { has (target, key) { if (key[0] === '_') { return false; func(prop, value); })() var obj = { value: 1 } var newObj = watch(obj, function(key, newvalue) { if (key == 'value') document.getElementById('container').