password
Created
May 17, 2023 11:34 AM
type
Post
status
Published
date
May 17, 2023
slug
summary
一些浏览器里的隐藏细节headers, 你平时留意了吗
tags
其他
Http
category
网络
icon
Sec-CH-UA系列
Sec-CH-UA系列主要是为了解决之前user-agent随意性强 没有统一规范的问题
sec-ch系列的header详细定义了设备类型 网络条件 屏幕尺寸等等
默认情况下, 在支持的浏览器中, requestHeaders中就会携带以下的请求头
- sec-ch-ua
浏览器默认就会带上这个头
属于这个系列的主请求头, 主要格式如下
Sec-CH-UA: "<brand>";v="<significant version>", ...
- brand: 指所处浏览器的品牌名称 如Google Chrome 内核标志Chromium, 如果是未识别的品牌会展示
Not A;Brand
- significant version: 指对应品牌的版本号信息, 取的是大版本号
- sec-ch-ua-mobile
浏览器默认就会带上这个头
表示的是用户的偏好, 代表用户是否更加偏爱移动设备的体验
Sec-CH-UA-Mobile: <boolean>
布尔值展示上会成两种样子
- ?1 代表true 此时用户偏好移动体验
- ?0 代表false 此时用户不偏好移动体验
- sec-ch-ua-platform
浏览器默认就会带上这个头
代表用户所处的平台和操作系统信息, 例如: Windows Android等
主要有这几个值:
"Android"
, "Chrome OS"
, "Chromium OS"
, "iOS"
, "Linux"
, "macOS"
, "Windows"
, or "Unknown"
- Sec-CH-UA-Arch
代表用户所处的架构平台, 例如: ARM X86等等
一般有这几个值:
"x86"
, "ARM"
, "[arm64-v8a, armeabi-v7a, armeabi]
架构信息不会主动发送, 需要后端服务显式声明Accept-CH中有这个值才会发送
- Sec-CH-UA-Bitness
所支持的运算位数, 64位or32位
- Sec-CH-UA-Full-Version-List
返回的事全版本信息, 而不是第一个的缩略主版本号
- Sec-CH-UA-Model
手机的设备型号, 例如:
Sec-CH-UA-Model: "Pixel 3 XL"
- Sec-CH-UA-Platform-Version
操作系统版本
Sec-Fetch系列
Sec-Fetch指示的是请求的相关的内容, http请求时默认就会带上三个:
- sec-fetch-dest:
- sec-fetch-mode
- sec-fetch-site
这类请求头是一种新的网络安全标准, 用来表述请求的元数据, 例如: 请求的目的地, 模式, 来源和用户激活状态, 这些请求头可以帮助服务器识别和过滤非法或恶意的请求, 提高web服务的安全性
- sec-fetch-dest
指示的事请求的目标.主要是用来在服务器上判定请求是否以符合预期的方式来提供服务.
参数超多
- audio: 代表请求目标是一个声音文件
- audioworklet: 音频工作集
- document: 文档 HTML XML
- embed: 嵌入内容
- empty: 空文本
- font: 文字
- frame: frame
- iframe: iframe
- image: 图片
- manifest: manifest
- object: object标签
- paintworklet: 图画工作集
- report: 报告
- script: 脚本
- …
- sec-fetch-mode
请求的模式
- cors: 请求是一个CORS的请求
- navigate: 请求在html文档的跳转期间
- no-cors: 非CORS的请求
- same-origin: 同源请求
- websocket: 标记webwsocket的连接
- Sec-Fetch-Site
表示请求发起者的来源与请求资源的来源之间的关系
- crosss-site: 跨站
- same-origin: 同源
- same-site: 同一个网站协议, 域名, 但是非同一个端口
- none: 位置
- Sec-Fetch-User
代表导航请求是否由用户激活触发