gRPC-Web 请求构建器 - 服务调用与响应查看
输入服务地址与方法,构造 gRPC-Web 请求,查看二进制帧与反序列化后的响应消息。
UD5工具箱
HTTP 内容协商 · 语言标签解析 · q值排序 · 最佳匹配 · RFC 4647
输入 Accept-Language 和服务器语言列表,点击解析按钮查看匹配结果
Accept-Language 是 HTTP 请求头之一,用于告知服务器用户代理(浏览器)偏好哪些自然语言。它是 HTTP 内容协商(Content Negotiation)机制的核心组成部分。
当浏览器发起请求时,会根据用户的操作系统语言设置或浏览器语言偏好,自动生成 Accept-Language 头。服务器读取该头信息,结合自身支持的语言列表,选择最合适的语言版本返回给用户。
典型值示例:zh-CN,zh;q=0.9,en;q=0.8 — 表示用户最偏好简体中文,其次接受任何中文变体(q=0.9),再次接受英文(q=0.8)。
q值(quality value,质量值)是一个介于 0 到 1 之间的浮点数,用于表示语言偏好的权重。q值越接近 1,表示该语言的优先级越高。
1.0(最高优先级)。q=0.9、q=0.85。示例:zh-CN,zh;q=0.9,en;q=0.8 中,zh-CN 的 q=1.0(默认),zh 的 q=0.9,en 的 q=0.8。
语言标签遵循 BCP 47(Best Current Practice 47)规范,由 RFC 5646 定义。标签由连字符 - 分隔的子标签组成:
| 组成部分 | 说明 | 示例 |
|---|---|---|
| 主语言 | 2 字母 ISO 639-1 或 3 字母 ISO 639-2/3 | zh, en, ja |
| 脚本(可选) | 4 字母 ISO 15924 | Hans(简体), Hant(繁体) |
| 地区(可选) | 2 字母 ISO 3166-1 或 3 数字 UN M.49 | CN, US, GB |
| 变体(可选) | 特定变体标识 | pinyin, wadegile |
常见组合:zh-CN(中文-中国大陆)、zh-Hans-CN(简体中文-中国大陆)、en-US(英语-美国)、ja-JP(日语-日本)。
根据 RFC 4647,语言范围匹配使用基本过滤规则:
zh-CN 匹配 zh-CN。-。如 zh 匹配 zh-CN(zh 是前缀,后面是 -CN)。*:匹配所有语言标签,通常作为兜底选项,q 值设置较低。zh-CN 不会匹配 zh(因为 zh-CN 不是 zh 的前缀)。匹配时按 Accept-Language 中 q 值从高到低依次尝试,第一个成功匹配的服务器语言即为最佳匹配。q=0 的条目会被跳过。
服务端处理 Accept-Language 的最佳实践:
Accept-Language 头,按逗号分割,提取语言范围和 q 值。['en-US', 'zh-CN', 'ja-JP'])。accepts 包、Django 的 get_language_from_request)已内置此功能。也可在反向代理层(如 Nginx)通过 $http_accept_language 变量进行处理。
浏览器的 Accept-Language 通常自动生成,基于以下来源:
chrome://settings/languages,Firefox: about:preferences#general)。开发者可以通过浏览器开发者工具的网络面板查看实际发送的 Accept-Language 值。部分浏览器扩展也允许自定义该请求头。
通配符 *:
zh-CN,zh;q=0.9,*;q=0.1 表示优先中文,但如果服务器不支持中文,也接受任何其他语言。* 表示接受所有语言,服务器通常会返回其默认语言。q=0:
zh-CN,en;q=0 表示只接受中文,明确拒绝英文。结合使用:zh-CN,zh;q=0.9,*;q=0.5,en;q=0 — 偏好中文,接受任何语言,但明确拒绝英文。
输入服务地址与方法,构造 gRPC-Web 请求,查看二进制帧与反序列化后的响应消息。
输入文字颜色和背景颜色,计算对比度比例,验证是否符合WCAG 2.1的AA/AAA级无障碍标准。
粘贴Base64编码的SAML Response,解码并格式化显示其中的属性、断言与签名信息,便于调试。
通过表单设置方法、头、体等参数,自动生成对应的 cURL 命令,方便复制执行。
选择国家,生成符合当地格式的随机假地址,包括街道、城市、邮编和电话号码。
将网页内容添加到浏览器的离线内容索引中,便于用户在下载页面查看。
将复杂嵌套JSON数组转为CSV,支持选择性展平列和排除字段,适配数据导出需求。
快速创建FAQ样式的手风琴列表,填入问题与答案,生成HTML/CSS/JS交互代码。
演示Service Worker或简单代理拦截fetch请求并返回自定义JSON数据。
通过下拉选择宽度、高度、分辨率等,逻辑组合并生成完整的@media规则。
录制一段语音,生成带有音频波形和自定义文本的分享卡片图片。
粘贴package.json内容,与npm registry版本对比,列出过期的包和建议升级版本。
利用浏览器内置SubtleCrypto生成RSA-OAEP或RSASSA-PKCS1密钥对,并导出为JWK或PEM格式(前端安全)。
输入JSON Schema,自动渲染出一个美观可用的表单界面(演示)。
拖动导出Postman集合JSON文件,浏览器中展示请求分层与细节,方便快速查阅。
录入自己的衣物,随机组合生成一套穿搭建议,解决明天穿啥问题。
播放 ship/sheep 等成对单词,选择听到的那个,强化辨音能力。
生成与原生HTML5音频播放器配套的音频频谱可视化组件代码。
调用摄像头,通过Shape Detection API实时识别图像中的条形码或人脸位置。
在浏览器生成PGP公私钥对,用于邮件加密与签名验证演示。
展示国际通用哨声信号:三短三长三短求救等,可播放音频示例。
同时播放雨声、风扇、咖啡店等多种环境音,独立调节音量,营造专注或休息氛围。
标准急救包推荐清单,勾选已有并标记过期日期,提醒更换,居家安全必备。
应用带通滤波器模拟老式电话或对讲机的窄频带音质,可加入噪声和失真。
为图片生成同时支持WebP和传统格式的<picture>标签代码,确保全浏览器兼容。
输入文本和容器宽度,计算所需的字体大小使文本不换行,利用JS测量实时反馈。
使用PasswordCredential和FederatedCredential存储用户登录信息,并实现一键自动登录。
通过浏览器原生界面选择联系人,获取姓名、电话、邮箱等字段,用于分享或填写表单。
编写一个简单的AudioWorkletProcessor,在独立线程中实时处理麦克风音频(如白噪声)。
交互式心脏内部结构图,点击心房、心室、瓣膜等部件查看名称和功能。