This page will collect some useful websets.
工具 分类
elasticsearch、redis部署
skywalking
预安装JDK
elasticsearch
官网下载 https://www.elastic.co/cn/downloads/elasticsearch
解压
1 | # 解压 |
常见问题
需要非root用户启动
【报错】max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 内存过小 解决:
1
2
3
4# 1.sudo vi /etc/sysctl.conf 文件最后添加一行
# vm.max_map_count=262144
# 2.加载设置好的系统参数
# sudo sysctl -p
XSS学习&实践
web安全
一直是开发中不可忽视的一部分。而xss作为web开发中最常见的攻击手段,防范是必然的。基于web浏览器tricks,JavaScript的发展,npm等开源项目漏
洞,web注入等会让开发者越来越防不胜防。
插入执行标签
- script
- img onerror触发
- iframe srcdoc触发
标签等提前闭合(截断)
- 如在富文本, input, textarea, 可编辑div等,0x01,0x02
- style标签
1
2
3<style>
</style ><script>alert(1)</script>
</style> - 注释提前闭合
1
--!><script>alert(1)</script>
windows安装mysql
安装包下载
下载完成后,选择一个磁盘内放置并解压。
设置环境变量
- 变量名:MYSQL_HOME
- 变量值:E:\mysql5.7.23
- path里添加:%MYSQL_HOME%\bin
初始化设置
创建data Uploads文件夹
my.init文件
1 | [mysqld] |
【Mac 终端配置】iTerm2 + oh-my-zsh
安装iterm2
- 官网下载 下载完,拖到应用程序里即可
iterm2配置配色方案
保存为文件SolarizedDarkHigherContrast.itermcolors,双击安装
打开 iTerm2 终端,依次在菜单栏选择:iTerm2 –> Preferences –> Profiles –> Colors –> Colors Presets –> SolarizedDarkHigherContrast
恢复iterm2默认设置
1 | defaults delete com.googlecode.iterm2 |
前置校验
1 | # 1、默认已安装 Homebrew、iTerm2 |
Docker
Docker,是一款现在最流行的 软件容器平台,提供了软件运行时所依赖的环境。
物理机
硬件环境,真实的 计算机实体,包含了例如物理内存,硬盘等等硬件;
虚拟机:
在物理机上 模拟出一套硬件环境和操作系统,应用软件可以运行于其中,并且毫无感知,是一套隔离的完整环境。本质上,它只是物理机上的一份运行文件。
为什么需要虚拟机?
环境配置与迁移
在软件开发和运行中,环境依赖一直是一个很头疼的难题,比如你想运行 node 应用,那至少环境得安装 node 吧,而且不同版本,不同系统都会影响运行。解决的办法就是我们的包装包中直接包含运行环境的安装,让同一份环境可以快速复制到任意一台物理机上。
资源利用率与隔离
通过硬件模拟,并包含一套完整的操作系统,应用可以独立运行在虚拟机中,与外界隔离。并且可以在同一台物理机上,开启多个不同的虚拟机启动服务,即一台服务器,提供多套服务,且资源完全相互隔离,互不影响。不仅能更好提高资源利用率率,降低成本,而且也有利于服务的稳定性。
传统虚拟机的缺点
资源占用大
由于虚拟机是模拟出一套完整系统,包含众多系统级别的文件和库,运行也需要占用一部分资源,单单启动一个空的虚拟机,可能就要占用 100+MB 的内存了。
启动缓慢
同样是由于完整系统,在启动过程中就需要运行各种系统应用和步骤,也就是跟我们平时启动电脑一样的耗时。
冗余步骤多
系统有许多内置的系统操作,例如用户登录,系统检查等等,有些场景其实我们要的只是一个隔离的环境,其实也就是说,虚拟机对部分需求痛点来说,其实是有点过重的。
Linux 容器
Linux 中的一项虚拟化技术,称为 Linux 容器技术(LXC)。它在进程层面模拟出一套隔离的环境配置,但并没有模拟硬件和完整的操作系统。因此它完全规避了传统虚拟机的缺点,在启动速度,资源利用上远远优于虚拟机;
Nginx
定义:轻量级、高性能的 Web 服务器,在现今的大型应用、网站基本都离不开 Nginx,已经成为了一项必选的技术;其实可以把它理解成 入口网关。
当你去银行办理业务时,刚走进银行,需要到入门处的机器排队取号,然后按指令到对应的柜台办理业务,或者也有可能告诉你,今天不能排号了,回家吧! 这样一个场景中,取号机器就是 Nginx(入口网关)。一个个柜台就是我们的业务服务器(办理业务);银行中的保险箱就是我们的数据库(存取数据);🤣
特点
- 轻量级,配置方便灵活,无侵入性;
- 占用内存少,启动快,性能好;
- 高并发,事件驱动,异步;
- 热部署,修改配置热生效;
Hybrid混合方案
随着 Web技术 和 移动设备 的快速发展,在各家大厂中,Hybrid 技术已经成为一种最主流最不可取代的架构方案之一。一套好的 Hybrid 架构方案能让 App 既能拥有极致的体验和性能,同时也能拥有Web技术灵活的开发模式、跨平台能力以及热更新机制。因此,相关的 Hybrid 领域人才也是十分的吃香,精通Hybrid 技术和相关的实战经验,也是面试中一项大大的加分项。
混合方案简析
Hybrid App,俗称 混合应用,即混合了 Native技术 与 Web技术 进行开发的移动应用。现在比较流行的混合方案主要有三种,主要是在UI渲染机制上的不同:
Webview UI
通过 JSBridge 完成 H5 与 Native 的双向通讯,并 基于 Webview 进行页面的渲染;
优势: 简单易用,架构门槛/成本较低,适用性与灵活性极强;
Webview 性能局限,在复杂页面中,表现远不如原生页面;
Native UI
通过 JSBridge 赋予 H5 原生能力,并进一步将 JS 生成的虚拟节点树(Virtual DOM)传递至 Native 层,并使用 原生系统渲染。
优势: 用户体验基本接近原生,且能发挥 Web技术 开发灵活与易更新的特性;
上手/改造门槛较高,最好需要掌握一定程度的客户端技术。相比于常规Web开发,需要更高的开发调试、问题排查成本;
小程序
通过更加定制化的 JSBridge,赋予了 Web 更大的权限,并使用双 WebView 双线程的模式隔离了 JS逻辑 与 UI渲染,形成了特殊的开发模式,加强了 H5 与 Native 混合程度,属于第一种方案的优化版本;
优势: 用户体验好于常规 Webview 方案,且通常依托的平台也能提供更为友好的开发调试体验以及功能;
劣势: 需要依托于特定的平台的规范限定
HTML5中的Web Notification桌面通知
Web Notifications 技术使页面可以发出通知,通知将被显示在页面之外的系统层面上。能够为用户提供更好的体验,即使用户忙于其他工作时也可以收到来自页面的消息通知,例如一个新邮件的提醒,或者一个在线聊天室收到的消息提醒等等。
PS:除了IE外,各大现代浏览器都对这个桌面推送有了基本的支持。