http历史版本特性

http历史版本特性

版本 发行年代 特性 使用情况
http/0.9 1991 GET method only 废弃
http/1.0 1996 头, 缓存,语言 爬虫
http/1.1 1999 keepalive, upgrade,ranges,hosts 流行
SPDY(google过渡版本) 2009 NPN、 单一连接、gzip header、流控制 升级为h2
http/2 2005 ALPN、 HPACK、priorities, server push 流行 (40% 2019)
http/3 2018 quic draft
阅读更多

UUID 生成服务器搭建

  1. UUID

    UUID 通用唯一识别ID, 由32位16进制数字组成, 共128 bit, 形式如下。

    xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

    由于可靠的长度+可靠算法,UUID能保持1M/s生成速度使用100亿年,UUID生成规则分为4个版本,很多语言都提供了官方或者半官方库,如golang golang.google.com/uuid PHP uuid/guuid。

阅读更多

一次性密码方案

  1. 背景

    OTP一次性密码常见于后台登陆,敏感操作的二次验证中,常用方案有HOTP(基于HMAC的一次性密码)、TOTP(基于时间的一次性密码)、短信验证、PUSH验证等,本文只讨论实现成本低的HOTP、TOTP

  2. HOTP: HMAC-based One-time Password algorithm

    基于散列消息验证码的一次性密码算法

阅读更多

有用的不常用Linux Tools

My Personal Notes, 🎮

网络工具


  1. 限速
    1
    2
    3
    4
    限速:/sbin/tc qdisc add dev eth0 root tbf rate 102400kbit latency 50ms burst 102400

    解除:/sbin/tc qdisc del dev eth0 root

    注:5120kbit表示限制宽带为5M,burst表示峰值为5M

  2. netstat 网络连接状态统计
    1
    2
    3
    #!/bin/bash

    netstat -aln |awk '/^tcp/{state[$NF]++}END{for (i in state) print i,state[i]}'

系统工具


  1. 常用工具
    • iftop # 流量监控
    • ifstat # 流量分析
    • free # 内存查看
    • vmstat – 虚拟内存分析
    • ipcs – 进程间通信查看
    • sar – System Activity Reporter
    • inotify # 文件监控
    • iostat #磁盘IO状态
    • nm – 目标文件格式分析
    • lsof – list open files
    • ldd – 库依赖分析
    • nmon – IBM 出品的系统监控工具 优于top htop http://nmon.sourceforge.net/pmwiki.php
  2. 交换分区
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 创建交换分区文件
    dd if=/dev/zero of=/data/swapfile bs=1M count=4096
    # 格式化分区
    mkswap /data/swapfile
    #挂载交换分区
    swapon /data/swapfile
    #添加开机启动
    echo '/data/swapfile swap swap defaults 0 0' >> /etc/fstab


Linux 定时任务|Cron

前言

简述:定时任务,顾名思义定时执行的任务,windows一般称为“计划任务”,windows7-》程序-》附件-》计划任务程序也能实现这么一个功能,但是貌似没杀人用,windows server有没有人用就不太清楚了,Linux定时任务是一个非常强大的东东,一般用来服务器日常备份或者实现某些服务器程序逻辑,比如游戏中00:00某些数据归零,或者每月清理僵尸号等等。

一、cron使用方法

言归正传,我们现在讲述基础任务即cron这个玩意怎么用。

/etc/目录下有几个有关于定时任务相关的文件和目录

1
cron.d/       cron.daily/   cron.deny     cron.hourly/  cron.monthly/ crontab       cron.weekly/
阅读更多

软件设计的的一些原则

一、 基本原则

封装变化Encapsulate what varies.

面向接口变成而不是实现 Code to an interface rather than to an implementation.

优先使用组合而非继承 Favor Composition Over Inheritance

二、SRP: The single responsibility principle 单一职责

阅读更多

AS3 依赖注入


一、 AS3 注入基本知识

对于一个写Java的来说注入这个概念再熟悉不过了。Java Spring框架IOC机制被一个蛋疼的东西简单粗暴的借鉴到了actionscript中,这就是Robotlegs。所以就有了形如下面的应用:

1
2
3
4
5
6
//someplace in your application where mapping/configuration occurs
var myClassInstance:MyClass = new MyClass();
injector.mapValue(MyClass, myClassInstance);
//in the class to receive injections
[Inject]
public var myClassInstance:MyClass
阅读更多

fastcgi

一、关于CGI & FastCGI

CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等

FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。它还支持分布式的运算, 即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。

阅读更多