代理自动配置(Proxy Auto Config)

PAC(Proxy Auto-Config) 配置文件使用 Javascript 进行 URL 和代理服务器的描述。通常使用 proxy.pac 作为文件名, WPAD 的规范则使用 wpad.dat 作为 PAC 文件的文件名。

一个PAC文件包含一个JavaScript形式的函数 FindProxyForURL(url, host)。这个函数返回一个包含一个或多个访问规则的字符串。用户代理根据这些规则适用一个特定的代理器或者直接访问。当一个代理服务器无法响应的时候,多个访问规则提供了其他的后备访问方法。 浏览器在访问其他页面以前,首先访问这个PAC文件。PAC文件中的URL可能是手工配置的,也可能是通过网页的网络代理自发现协议(Web Proxy Autodiscovery Protocol)自动配置的。

自动化技术

现代的浏览器实现了几个级别的自动化;用户可以选择最适合他们需要的级别。下面的这些方法被普遍的实现:

  • 手动代理配置 :为所有的URLs规定一个主机名和端口作为代理。大多数浏览器允许用户规定一个域名的列表(例如 localhost),访问这个列表里面的域名的时候不通过代理服务器。
  • 代理自动配置(PAC) :规定一个指向PAC文件的URL,这个文件中包括一个JavaScript函数来确定访问每个URL时所选用的合适代理。这个方法更加适合需要几个不同代理配置的笔记本用户,或者有很多不同代理服务器的复杂的企业级设置。
  • 网络代理自发现协议(WPAD) : 浏览器通过DHCP和DNS的查询来搜索PAC文件的位置。
阅读全文 »

简介

WebDAV(Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。

IETF WebDAV 工作组的目标是,设计一个协议,它提供基于标准的论坛中任何分布式创作工具需要的功能。 当前的 WebDAV 规范 (IETF RFC 2518) 解决协作式创作工具的三个主要问题:

  • 改写保护。HTTP 1.1 无法确保客户端可以保护资源,并且可以在其他客户端同时编辑它们的情况下进行更改。 使用 WebDAV,可以通过多种方式来锁定资源,以便让其他客户端知道您对所讨论的资源感兴趣,或者防止其他客户端访问该资源。
  • 资源管理。HTTP 只能直接访问单个资源。 WebDAV 提供一种更有效地组织数据的方法。 WebDAV 引入了可包含资源 的集合(类似于文件系统文件夹)概念。 通过 WebDAV 进行的资源管理包括如下功能:创建、移动、复制和删除集合,以及集合中的资源或文件。
  • 文档属性。不同类型的数据具有唯一的属性,这有助于描述数据。 例如,在电子邮件中,这些属性可能是发件人的姓名和接收邮件的时间。 在协作文档中,这些属性可能是文档原始作者的姓名和最后一个编辑者的姓名。 因为人们使用的文档类型各不相同,所以可能的属性类型列表也变得无限大。 XML 是 WebDAV 所需的一种可扩展通讯工具。
阅读全文 »

简介

LDAP 的全称是 Lightweight Directory Access Protocol,「轻量目录访问协议」,它是基于X.500标准的轻量级目录访问协议。

目录是一个为查询、浏览和搜索而优化的数据库,它成树状结构组织数据,类似文件目录一样。
目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。

LDAP 「是一个协议」,约定了 Client 与 Server 之间的信息交互格式、使用的端口号、认证方式等内容。

LDAP的基本模型

目录树概念

    1. 目录树:在一个目录服务系统中,整个目录信息集可以表示为一个目录信息树,树中的每个节点是一个条目。
    1. 条目:每个条目就是一条记录,每个条目有自己的唯一可区别的名称(DN)。
    1. 对象类:与某个实体类型对应的一组属性,对象类是可以继承的,这样父类的必须属性也会被继承下来。
    1. 属性:描述条目的某个方面的信息,一个属性由一个属性类型和一个或多个属性值组成,属性有必须属性和非必须属性。
阅读全文 »

站点

所有站点

1
2
3
4
5
# 导出所有站点
%windir%\system32\inetsrv\appcmd list site /config /xml > c:\sites.xml

# 导入所有站点
%windir%\system32\inetsrv\appcmd add site /in < c:\sites.xml

单个站点

1
2
3
4
5
# 导出单独站点
%windir%\system32\inetsrv\appcmd list site "站点名称" /config /xml > c:\mywebsite.xml

# 导入单独站点
%windir%\system32\inetsrv\appcmd add site /in < c:\mywebsite.xml

应用程序池

所有程序池

1
2
3
4
5
# 导出所有应用程序池
%windir%\system32\inetsrv\appcmd list apppool /config /xml > c:\apppools.xml

# 导入所有应用程序池
%windir%\system32\inetsrv\appcmd add apppool /in < c:\apppools.xml

单个程序池

1
2
3
4
5
# 导出单独的应用程序池
%windir%\system32\inetsrv\appcmd list apppool "应用程序池名称" /config /xml > c:\myapppool.xml

# 导入单独的应用程序池
%windir%\system32\inetsrv\appcmd add apppool /in < c:\myapppool.xml

参考:

IIS配置导入导出

winsw安装Windows服务

1,下载安装:

https://github.com/winsw/winsw

2,将WinSW.exe复制到自定义的目录,并重命名为自己想命名的服务名称minio-server.exe。

3,同目录下创建minio-server.xml。特别注意,xml和exe必须同名

4,配置minio-server.xml文件

阅读全文 »

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!-- 调大应用程序池的请求队列 -->
c:\windows\system32\inetsrv\appcmd.exe set apppool 审核Api -queueLength:65535

<!-- 取消固定时间间隔的回收 -->
c:\windows\system32\inetsrv\appcmd.exe set apppool 审核Api -recycling.periodicRestart.time:00:00:00

<!-- 设置指定时间点的回收 -->
c:\windows\system32\inetsrv\appcmd.exe set apppool 审核Api /+recycling.periodicRestart.schedule.[value='04:15:00']

<!-- 取消空闲超时的进程关闭 -->
c:\windows\system32\inetsrv\appcmd.exe set apppool 审核Api -processModel.idleTimeout:00:00:00

<!-- 开启所有回收事件的日志 -->
c:\windows\system32\inetsrv\appcmd.exe set apppool 审核Api -recycling.logEventOnRecycle:"Time, Requests, Schedule, Memory, IsapiUnhealthy, OnDemand, ConfigChange, PrivateMemory"

<!-- IIS并发请求数 -->
c:\windows\system32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000

// 注册表 将最大连接数设置为10
reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters /v MaxFieldLength /t REG_DWORD /d 32768
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters /v MaxRequestBytes /t REG_DWORD /d 32768

// 修改TCP MaxUserPort限制(由默认5000改为65534
reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v MaxUserPort /t REG_DWORD /d 65534

// 重启
net stop http & net start http & iisreset

相关截图:

Dingtalk_20220211095021.jpg

Dingtalk_20220211095200.jpg

服务器角色

角色 描述
sysadmin 执行SQL Server中的任何动作
serveradmin 配置服务器设置
setupadmin 安装复制和管理扩展过程
securityadmin 管理登录和CREATE DATABASE的权限以及阅读审计
processadmin 管理SQL Server进程
dbcreator 创建和修改数据库
diskadmin 管理磁盘文件
阅读全文 »

Object.keys()

ES5 引入了Object.keys方法,返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键名。

返回值:一个表示给定对象的所有可枚举属性的字符串数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var obj = { foo: "bar", baz: 42 };
Object.keys(obj)
// ["foo", "baz"]

let arr = [1,2,3,4,5,6]
Object.keys(arr) // ["0", "1", "2", "3", "4", "5"]

let str = "saasd字符串"
Object.keys(str) // ["0", "1", "2", "3", "4", "5", "6", "7"]

// 常用
let person = {name:"张三",age:25,address:"深圳",getName:function(){}}
Object.keys(person).map((key)=>{
  person[key] // 获取到属性对应的值,做一些处理
})

Object.values()

Object.values 方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键值。

Object.values只返回对象自身的可遍历属性。

1
2
3
4
5
6
7
8
9
var obj = { foo: "bar", baz: 42 };
Object.values(obj)
// ["bar", 42]

// 返回数组的成员顺序
// 属性名为数值的属性,是按照数值大小,从小到大遍历的,因此返回的顺序是b、c、a。
var obj = { 100: 'a', 2: 'b', 7: 'c' };
Object.values(obj)
// ["b", "c", "a"]

序列化过程:序列化操作的时候系统会把当前类的serialVersionUID写入到序列化文件中,当反序列化时系统会去检测文件中的serialVersionUID,判断它是否与当前类的serialVersionUID一致,如果一致就说明序列化类的版本与当前类版本是一样的,可以反序列化成功,否则失败。

IDEA设置:

微信截图_20211011150411.png

Alt+Enter即可显示:

微信截图_20211012172051.png

0%