#24 F12 网络过滤器
WebDev Chrome 2023-07-16示例
mime-type:image/png larger-than:1K
# Edge 官方示例,表示过滤出大于 1K 的 PNG 图片
domain:*.csdn.net method:POST
# 过滤出 CSDN 域的 POST 请求。
has-response-header:Content-Type -domain:*.baidu.com
# 过滤出带 Content-Type 头的请求,排除百度域。
清单
属性 | 详情 |
---|---|
domain |
仅显示来自指定域的资源。您可以使用通配符(* )来包含多个域。例如, *.com 会显示所有以 .com 结尾的域名资源。DevTools 会将所有找到的域名填充到自动完成下拉菜单中。 |
has-response-header |
显示包含指定 HTTP 响应头的资源。 DevTools 会将所有找到的响应头填充到自动完成下拉菜单中。 |
is |
使用 is:running 查找 WebSocket 资源。 |
larger-than |
显示大于指定大小的资源,单位为字节。 设置值为 1000 相当于设置值为 1k 。 |
method |
显示通过指定的 HTTP 方法类型检索的资源。 DevTools 会将所有找到的 HTTP 方法填充到下拉菜单中。 |
mime-type |
显示指定 MIME 类型的资源。 DevTools 会将所有找到的 MIME 类型填充到下拉菜单中。 |
mixed-content |
显示所有混合内容资源(mixed-content:all ),或仅显示当前显示的资源(mixed-content:displayed )。 |
scheme |
显示通过不安全的 HTTP(scheme:http )或安全的 HTTPS(scheme:https )检索的资源。 |
set-cookie-domain |
显示具有与指定值匹配的 Set-Cookie 标头中的 Domain 属性的资源。DevTools 会将所有找到的 Cookie 域填充到自动完成中。 |
set-cookie-name |
显示具有与指定值匹配的 Set-Cookie 标头中的名称的资源。DevTools 会将所有找到的 Cookie 名称填充到自动完成中。 |
set-cookie-value |
显示具有与指定值匹配的 Set-Cookie 标头中的值的资源。DevTools 会将所有找到的 Cookie 值填充到自动完成中。 |
status-code |
显示与特定 HTTP 状态码匹配的资源。 DevTools 会将所有找到的状态码填充到自动完成下拉菜单中。 |
- 多个条件之间是 AND 关系,OR 关系暂时不支持。
- 前面加上
-
表示取反,小技巧:可以通过输入-
之后的自动补全查看所有支持的选项。
参考资料与拓展阅读
- Microsoft Learn,Microsoft Edge,Filter requests by properties
- 微信公众号,通过调试技术,我搞懂了 b 站视频播放很快的原理
#23 Web 分词 API
WebDev JavaScript 2023-04-21看了 How to split JavaScript strings into sentences, words or graphemes with "Intl.Segmenter" 了解到,现在 Web 已经支持分词了:
const text = `我爱北京天安门,天安门上太阳升。伟大领袖毛主席,指引我们向前进。`;
const granularities = ["sentence", "word", "grapheme"];
granularities.forEach(function (granularity) {
// console.log([granularity, index, self])
let segmenter = new Intl.Segmenter("zh", { granularity: granularity });
let seg = segmenter.segment(text);
// console.log(seg) // Segments{}
let result = Array.from(seg, (s) => s.segment);
console.log(result);
});
// ['我爱北京天安门,天安门上太阳升。', '伟大领袖毛主席,指引我们向前进。']
// ['我', '爱', '北京', '天安门', ',', '天安门', '上', '太阳', '升', '。', '伟大', '领袖', '毛主席', ',', '指引', '我们', '向', '前进', '。']
// ['我', '爱', '北', '京', '天', '安', '门', ',', '天', '安', '门', '上', '太', '阳', '升', '。', '伟', '大', '领', '袖', '毛', '主', '席', ',', '指', '引', '我', '们', '向', '前', '进', '。']
#22 基于 Web 技术的跨平台应用解决方案
WebDev 2023-02-01- Web App,纯 Web App,需要用浏览器打开
随着浏览器厂商的持续推进,现在 WebApp 也能实现很多底层交互了
- Native App,各平台的原生应用
-
Hybird App,在 App 中加入 WebView,实现部分逻辑
根据 Native 和 Web 部分的比例,可以分成: -
交替
- 混合,同一个窗口中,主体内容采用原生实现,部分组件是 WebView + WebApp(类似浏览器)
- WebView + WebApp 为主体逻辑,加上 Native 交互
后端和框架核心通信,实现窗口管理,系统调用,WebView。
- Electron
- React Native (RN)
- Tauri,后端开发语言 Rust,使用系统自带浏览器组件
- Cordova
- Ionic
- NW.js
- Expo
- Capacitor
- Quasar
- NativeScript
- Gluon
参考资料与拓展阅读
#21 Gin + Vue3 (ElementPlus) 开发一个通用管理后台 [编辑中]
WebDev Golang Gin Vue ElementUI 2022-04-03:) 本文正在编辑中,暂时不提供浏览...
#20 公共库 CDN
WebDev CDN 2022-02-19公共库 CDN,也叫静态资源库。
我想了一下,国内公共库 CDN 全面挂了可能是由于监管压力。
在国内,如果 CDN 提供的静态资源被一些恶意网站引用,会被问责。如果要全面审核使用 CDN 的网站,肯定是会增加太多的管理成本。
感觉这真是太不合理了!
如果是线上项目,不要用公共库 CDN。
小项目自己管理静态资源,大项目可以用付费的 CDN 服务。
BootCDN
我之前用的最多的 CDN,但是总是挂,心累。现在开始用字节跳动 CDN 了。
字节跳动 CDN
CloudFlare CDN
JsDelivr
不可用清单
百度 [不可用]
已经挂了。
腾讯 [不可用]
打不开。
新浪 [不可用]
只有很少的资源。
360 [不可用]
又拍云 [不可用]
只有很少的资源。
七牛云 [不可用]
感觉很久没有维护了。一些常用库都非常老了。
参考资料与拓展阅读
- 微信公众号, 云原生实验室, jsDelivr 备案被吊销后,网页静态资源何去何从
#19 DNS_PROBE_FINISHED_NXDOMAIN
WebDev DNS 2021-12-14- 浏览器突然打不开 zhihu.com, 报
DNS_PROBE_FINISHED_NXDOMAIN
。 - Windows 网络诊断之后说是 DNS 不可用。
- 经过检查,使用 DHCP 获取到的 DNS
172.16.0.1
。 - 改成 AliDNS:
223.5.5.5
,223.6.6.6
之后就好了。 - 然后再改回默认的 DNS 发现也能正常访问了。
我应该在出现问题的时候先尝试 nslookup 一下,看看 DNS 解析出来的到底是个什么结果。
下次遇到再继续更新。
C:\Users\Administrator>ipconfig /all | findstr DNS
主 DNS 后缀 . . . . . . . . . . . :
连接特定的 DNS 后缀 . . . . . . . :
DNS 服务器 . . . . . . . . . . . : 172.16.0.1
连接特定的 DNS 后缀 . . . . . . . :
DNS 服务器 . . . . . . . . . . . : fec0:0:0:ffff::1%1
连接特定的 DNS 后缀 . . . . . . . :
连接特定的 DNS 后缀 . . . . . . . :
连接特定的 DNS 后缀 . . . . . . . :
连接特定的 DNS 后缀 . . . . . . . :
C:\Users\Administrator>nslookup zhihu.com
服务器: UnKnown
Address: 172.16.0.1
非权威应答:
名称: zhihu.com
Address: 103.41.167.234
#18 Security.txt 文件
WebDev 安全 网站 服务器 2021-10-30非常简单,就是告诉别个,如果网站出现安全问题应该向谁报告,用什么方式报告。
#17 Tornado Remote IP
WebDev Python Tornado 2019-09-20由于 Tornado 部署在 Nginx 后面,通过 self.request.remote_ip
总是只能拿到 Nginx 地址。
#16 Nginx location 指令
WebDev WebServer Nginx 2019-05-22Syntax : location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
Default: —
Context: server, location
- 执行顺序是:完整匹配(
= uri
) > 前缀匹配(^~ uri
/uri
) > 正则匹配(~
/~*
)。 - 优先级是:完整匹配 > 正则匹配 > 前缀匹配(越长优先级越高)。
- 完整匹配、正则匹配匹配上之后直接返回,前缀匹配则不是。