在我们的电商站点的 google 分析中, 存在大量的 direct 流量, 这部分流量按照 google 给出的解释是用户直接输入网址进入网站或者没有正确获取到 referrer 请求头信息从而记录的.

为了能够准确的了解用户在从外站跳转到我站点时所发生的跳转过程, 分析 referrer 信息丢失的原因, 从而看是否能通过技术的手段调整这部分数据, 特别的进行一些测试.

1.在 shell 中使用 curl 模拟手机 user agent 请求 pc 端 http 链接, 使用 L 参数跟踪跳转, 跳转之后, referrer 保留.

curl -I http://www.dressafford.com/cheap-wedding-dresses.html --referrer http://www.guohuawei.com --user-agent "ipad" -L

84.17.41.94, 64.252.70.208 - - [12/Sep/2022:10:39:21 +0000] "GET /cheap-wedding-dresses.html HTTP/1.1" 200 251938 "http://www.guohuawei.com" "ipad"

通过测试用例 1 , 我们可以发现, 默认情况下服务器端在跳转时, referrer 信息会携带.

2.在第三方网站页面中插入 pc 端 https 链接, 使用手机浏览器点击网页中的链接, 跳转之后, referrer 保留.

36.106.254.39, 64.252.111.201 - - [12/Sep/2022:10:54:42 +0000] "GET /cheap-wedding-dresses.html HTTP/1.1" 200 24258 "https://www.guohuawei.com/" "Mozilla/5.0 (Linux; Android 10; GM1910) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Mobile Safari/537.36"

通过测试用例 2, 我们可以发现, 从 https 的 pc 跳转到 https 的 mobile 网站, referrer 信息不会丢失.

3.在第三方网站页面中插入 pc 端 http 链接, 使用手机浏览器(打开的时候强制是 https 站点)点击网页中的链接, 跳转之后, referrer 丢失.

36.106.254.39, 64.252.112.164 - - [12/Sep/2022:10:53:45 +0000] "GET /cheap-wedding-dresses.html HTTP/1.1" 200 24258 "-" "Mozilla/5.0 (Linux; Android 10; GM1910) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Mobile Safari/537.36

4.在第三方网站页面中插入移动端 http 链接, 使用手机浏览器(打开的时候强制是 https 站点)点击网页中的链接, 跳转之后, referrer 丢失.

36.106.254.39, 64.252.111.212 - - [12/Sep/2022:10:55:47 +0000] "GET /cheap-wedding-dresses.html HTTP/1.1" 200 24267 "-" "Mozilla/5.0 (Linux; Android 10; GM1910) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Mobile Safari/537.36"

5.在第三方网站页面中插入移动端 http 链接, 使用电脑访问第三方网站页面的 https 地址,点击链接, 跳转之后, referrer 没有传递, 下面记录的是 pc 端的请求日志, 日志里面已经没有了 referrer 信息, 也就是说在 https 页面中如果存在 http 链接, 点击跳转时, 属于降级, 浏览器不会将 referrer 信息携带到目标站点中, 这主要是处于安全性的考虑.

84.17.41.94, 64.252.72.154 - - [12/Sep/2022:11:52:06 +0000] "GET /cheap-wedding-dresses.html HTTP/1.1" 302 142 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"

通过测试用例 3,4,5 我们可以发现, 如果 https 页面跳转到 http 页面, 会导致 referrer 信息丢失, 由于这次跳转是从外站到我站, 这个跳转是否允许 referrer 保留下来, 不能由我方决定.

6.在第三方网站页面中插入移动端 http 链接, 使用电脑访问第三方网站页面的 http 地址,点击链接, 跳转之后, referrer 保留了下来.

84.17.41.94, 64.252.121.127 - - [12/Sep/2022:13:58:12 +0000] "GET /cheap-wedding-dresses.html HTTP/1.1" 200 24258 "http://www.guohuawei.com/" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"

通过测试用例 6 我们可以发现, 如果是从 http 跳转到 http 网站, 然后再次在同域名下 从 http 跳转到 https 下, referrer 信息得到了传递和保留.

正常情况下执行 git status 返回结果的速度是很快的,但是当安装了 oh-my-zsh 之后,如果项目文件过多,执行 git status 时则会响应很慢,oh_my_zsh 默认开启了 git 插件,该插件会在每个命令之后检查 repo 的状态。

在命令行中执行以下命令,可以关闭检查。

git config --global --add oh-my-zsh.hide-status 1
git config --global --add oh-my-zsh.hide-dirty 1

该行为在新版本的 .oh_my_zsh 中被覆盖,只需取消注释 .zshrc 中的以下行:

DISABLE_UNTRACKED_FILES_DIRTY="true"

家里路由器支持 wifi 5G 协议,虽然也兼容 2.4G,但是不是很稳定,速度也不快,所以更换了一个 5G 网卡。

安装过程

  1. 找到网卡
lsusb

可以看到网卡信息如下:

0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC
  1. 安装网卡驱动
sudo apt update
sudo apt install build-essential git dkms
git clone https://github.com/brektrou/rtl8821CU.git
cd rtl8821CU
chmod +x dkms-install.sh
sudo ./dkms-install.sh
  1. 载入驱动,使之生效
sudo modprobe 8821cu

速度测试

  • 2.4G 网卡: 下载 2m/s,上传不稳定。
  • 5g 网卡:上传和下载速度均可达到 10m/s以上。

相关信息

目前在 ubuntu 下安装微信,仅有此方法可行,经过验证,成功。

1.下载Wine环境包

wget http://archive.ubuntukylin.com/software/pool/partner/ukylin-wine_70.6.3.25_amd64.deb

2.下载微信(wine)包

wget http://archive.ubuntukylin.com/software/pool/partner/ukylin-wechat_3.0.0_amd64.deb

3.安装 win 环境包

 dpkg -i  ./ukylin-wine_70.6.3.25_amd64.deb

4.使用 dpkg 安装 wechat 包

 dpkg -i  ./ukylin-wechat_3.0.0_amd64.deb

默认情况下,微信会被安装到 /opt/ukylin-wine/apps/wine-wechat 目录下
5.运行 wechat

cd /opt/ukylin-wine/apps/wine-wechat/ && ./run.sh