HTTP 缓存控制学习

缓存 在 HTTP/1.1 协议 http://www.w3.org/Protocols/rfc2616/rfc2616.html 里, HTTP 的缓存处理步骤。 步骤一,第一次请求文件时。 服务器响应头中将给出该文件的缓存相关属性 Cache-Control 缓存控制开关 Expires 缓存超时时间(HTTP/1.0 遗留,被 Cache-Control 代替) Pragma 是否禁用(HTTP/1.0 遗留,被 Cache-Control 代替) Last-Modified 文件最后修改时间 ETag 文件标识 步骤二,第二次请求文件时,浏览器根据当前缓存的属性做出下一步的判断。 首先通过 Pragma 和 Cache-Control 判断本地缓存开关,优先级 Pragma > Cache-Control。如果判断缓存禁用,则直接向服务器请求文件,并要求服务器禁止缓存。 如果缓存开启,则通过 Expires 和 Cache-Control 判断缓存时间是否超时,优先级顺序是 Cache-Control > Expires。如果判断缓存可用,则直接使用本地缓存,不进行任何请求。 如果判断缓存超时,则向服务器发起请求,进入步骤三。 步骤三,浏览器判断缓存超时了,这时浏览器请求需要附加上当前缓存的相关属性,由服务器进行判断是否缓存。 如果当前缓存存在 Last-Modified 属性,则浏览器提交 If-Modified-Since 头,要求服务器判断文件修改时间是否更新。 如果当前缓存存在 ETag 属性,则浏览器提交 If-None-Match 头,让服务器判断文件 Hash 值是否匹配。...

December 3, 2022 · 1 min · lyincc

网络诊断

这里介绍一些常用的网络诊断、链路质量评估工具。 PING ping 是最常用的基于 ICMP Echo 协议的链路诊断工具,Windows 和 Linux 平台都有该工具。 ping 8.8.8.8 路由跟踪 路由跟踪是基于 IP 协议 TTL 限制触发 ICMP 错误实现的一种链路路径探测器。可以找出 IP 数据包和模板间经过的路由器地址。 Windows 的路由跟踪指令是 tracert。 tracert 8.8.8.8 Linux 上是 traceroute tarceroute 8.8.8.8 带宽测试 可以用于 TCP、UDP 协议带宽测试的工具有 iperf3 https://iperf.fr/。 iperf3 需要客户端和服务端同时运行。 服务端 iperf3 -s 客户端 iperf3 -c x.x.x.x 同类工具还有 dperf https://github.com/baidu/dperf netperf https://github.com/HewlettPackard/netperf qperf https://github.com/linux-rdma/qperf。 psping 微软的工具包 PSTools 中提供了 psping 工具用于测试 TCP 协议延迟。 psping www.google.com:443 也可以测试 UCP 协议 psping -u 8....

September 16, 2022 · 1 min · lyincc

Mikrotik 路由接入 IPv6 网络

开启路由器 IPv6 网络 由于之前设置好了电信光猫的桥接模式,路由器是直接通过 PPPoE 协议接入电信网络,所以可以直接启用 IPv6 网络。 首先开启 MikroTik ROS 的 ipv6 包。 打开 PPPoE profile 中的 ipv6 支持。 确定 ipv6 转发开启。 配置 IPv6 DHCP Client 获取前缀。 配置 IPv6 DHCP Server 分发地址。 为内网接口分配 IPv6 地址 DNS Google 的 IPv6 公共 DNS 2001:4860:4860::8888 2001:4860:4860::8844 问题 PMTU 黑洞 现象: 接上 IPv6 后发现知乎、简书、网易云音乐等 HTTPS 协议连接无法访问,而 ICMP 报文可达,HTTP 协议可以返回。参考了几篇文章后发现是路由器 MTU 设置问题。 以下是引用的文章说明 [1] 终端设备在发包时,也可以设置 DF ( Don’t Fragment )标记来告诉路由器不要分片。这时中间路由器会丢掉超过 MTU 的包,回复一条 ICMP Fragmentation Needed 消息。发送者收到这个包后,下次就会发小一点的包,这个过程叫做 PMTU Discovery 。现实中可以看到 HTTPS ( TLS )的流量大都是带 DF 标记的。...

September 9, 2022 · 2 min · lyincc

frp 代理服务架设

https://github.com/fatedier/frp frp 用法很多,这里主要用做内网穿透。 内网穿透 首先需要一个中转服务器,用于公开内网服务。 中转服务器配置 [common] bind_port = 4700 服务端配置 [common] server_addr = x.x.x.x server_port = 7000 [rdp] type = stcp sk = xxx local_ip = 127.0.0.1 local_port = 3389 客户机配置 [common] server_addr = x.x.x.x server_port = 7000 [rdp_visitor] type = stcp role = visitor server_name = rdp sk = xxx bind_addr = 127.0.0.1 bind_port = 6000 Docker docker run --restart=always --network host -d -v /etc/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps docker run --restart=always --network host -d -v /etc/frp/frpc....

May 15, 2022 · 1 min · lyincc

电信光猫 - 改桥接模式

为什么要改桥接 电信给的光猫太烂,路由性能太差。 配置 设备是 华为 HS8145C。 一般光猫会有两套 WEB 后台,一个是给用户的, 一个是给内部配置的。 改桥接需要进入内部后台,一般在 8080 端口,如 http://192.168.1.1:8080/。 以前的光猫需要破解超级管理员密码才能用,参考 电信光猫 - 烽火 HG2201T 敏感信息泄露。 后来改的人多了,电信直接把权限降到普通用户就能改了,省去了破解的麻烦。 通过配置向导,直接就可以修改。 非常简单!

May 15, 2022 · 1 min · lyincc