map 发表于 2022-01-06 更新于 2023-05-11 Valine: Map1234567891011121314151617181920// A header for a Go map.type hmap struct { // 元素个数,调用 len(map) 时,直接返回此值 count int flags uint8 // buckets 的对数 B uint8 // overflow 的 bucket 近似数 noverflow uint16 // 计算 key 的哈希的时候会传入哈希函数 hash0 uint32 // 指向 buckets 数组,大小为 2^B // 如果元素个数为0,就为 nil buckets unsafe.Pointer // 扩容的时候,buckets 长度会是 oldbuckets 的两倍 oldbuckets unsafe.Pointer // 指示扩容进度,小于此地址的 buckets 迁移完成 nevacuate uintptr extra *mapextra // optional fields} 阅读全文 »
slice 发表于 2021-12-31 Valine: Slice12345type SliceHeader struct { Data uintptr Len int Cap int} 阅读全文 »
kqueue 发表于 2021-12-24 更新于 2022-09-04 Valine: 使用 Kqueue 实现简单的 TCP 服务器项目地址 设计TCP 服务器由 TCP socket,来自客户端连接的 socket,kqueue 以及轮询 kqueue 的 event loop 组成。 阅读全文 »
HTTPS 发表于 2021-11-27 更新于 2022-09-04 Valine: HTTPSHTTP 由于是明⽂传输,所以安全上存在以下三个⻛险: 窃听⻛险,⽐如通信链路上可以获取通信内容,⽤户号容易没。 篡改⻛险,⽐如强制植⼊垃圾⼴告,视觉污染,⽤户眼容易瞎。 冒充⻛险,⽐如冒充淘宝⽹站,⽤户钱容易没。 阅读全文 »
Nginx 发表于 2021-11-27 Valine: Nginx二进制安装安装地址 12345678910111213141516# 解压nginx压缩包并进入nginx-1.20.2tar -xf nginx-1.20.2.tar.gz && cd nginx-1.20.2# 安装所需软件yum install -y pcre pcre-devel #支持nginx的正则yum install -y openssl openssl-devel #加密认证# 执行./configure 配置环境 生成Makefile文件# prefix指定安装的路径./configure --user=nginx --group=nginx --prefix=/etc/nginx/ --with-http_stub_status_module --with-http_ssl_module --with-pcre# 编译并且安装 make&&make install# 配置PATH路径 export PAHT=$PATH:/etc/nginx/sbin 阅读全文 »
HTTP 发表于 2021-11-27 更新于 2022-09-04 Valine: HTTPHTTP (HyperText Transfer Protocol)超文本传输协议 HTTP 是⼀个在计算机世界⾥专⻔在「两点」之间「传输」⽂字、图⽚、⾳频、视频等「超⽂本」数据的「约定和规范」。 阅读全文 »