惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
SegmentFault 最新的问题
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Attack and Defense Labs
Attack and Defense Labs
F
Full Disclosure
Vercel News
Vercel News
N
News | PayPal Newsroom
The GitHub Blog
The GitHub Blog
H
Hacker News: Front Page
H
Heimdal Security Blog
P
Privacy International News Feed
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cisco Blogs
L
Lohrmann on Cybersecurity
D
Docker
Recent Announcements
Recent Announcements
Security Archives - TechRepublic
Security Archives - TechRepublic
人人都是产品经理
人人都是产品经理
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Proofpoint News Feed
T
Tailwind CSS Blog
C
Check Point Blog
博客园 - 叶小钗
Google Online Security Blog
Google Online Security Blog
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
S
Secure Thoughts
博客园 - Franky
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
P
Palo Alto Networks Blog
Latest news
Latest news
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
Last Week in AI
Last Week in AI
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cyberwarzone
Cyberwarzone
小众软件
小众软件
Cisco Talos Blog
Cisco Talos Blog
Hacker News: Ask HN
Hacker News: Ask HN
T
Threatpost
T
Tenable Blog
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学

SЕSSのB10GТЕ5Т

自制简易蜜罐: 从愿者上钩到世界地图 - SESSのB10GTEST 草台班子学校之废弃服务器从占领到放弃 - SESSのB10GTEST 在受版权限制的地区播放诈骗神曲 - SESSのB10GTEST 通过 DevTools 绕过 SSR 抓包 B 站专栏正文接口 BAC 正处于历史以来最困难的时期 - 中秋考古有感 - SESSのB10GTEST 发送文件到手机的 N 种正确姿势 - SESSのB10GTEST KVM 徒手安装 Arch Linux - SESSのB10GTEST Debian 之 KDE 与 Wayland 调教指北 窗口宽度不能超过 16384 - SESSのB10GTEST
一个拼写错误是如何让整个互联网一起犯错的 - SESSのB10GTEST
2025-06-02 · via SЕSSのB10GТЕ5Т

一个拼写错误是如何让整个互联网一起犯错的

web http javascript html history internet www referer rfc

引言

  • 在 Web 领域, 有一个重要的协议, 超文本传输协议 (Hypertext Transfer Protocol, HTTP), 这个协议规定了在互联网上的网页等内容的基本的传输方式, 是一个应用层协议 🤝
  • 如果你接触互联网, 那你一定使用了这个协议, 你现在浏览的网页或视频, 就是通过 HTTP 或者套了一层 SSL/TLS 加密的 HTTPS 传输的 🔒. 不信, 看一眼上面的地址栏或点击分享复制链接, 一定是 https:// 开头的内容

  • 众所周知, 世界是一个巨大的草台班子 🌿, 在 HTTP 最初的规范 RFC 1945 中, 一个『明显』的拼写错误, 就被写入了正式的规范中, 并由于『历史原因』流传至今

只有请求标头有错的 Referer

  • 这个拼写错误存在于最常见的请求标头中, 叫做 Referer, 很明显正确应拼写为 Referrer, 但事实是就这么拼错了

  • 一个常规的 HTTP 请求可能是下面这样
GET / HTTP/1.1
Accept: */*
Host: space.bilibili.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64)
Referer: https://www.bilibili.com/
  • 根据文档定义和浏览器的实际行为, Referer 代表这次请求的引用来源. 默认为上一个网页的 URL, 当然这也可以被 Referrer Policy 或浏览器设置缩短或移除, 注意这个拼写是正确的

别人却又都是对的

  • 同样是 Web 的一部分, 实际上只有 HTTP 的 Referer, 是拼写错误的, 而别处却又都正确了

  • 如 JavaScript Web API 中的 DOM API, document.referrer, 这里是对的

  • 如 HTML 中, 像 <a> <img> 这些元素, 有属性 referrerpolicy, 也是正确的

你的错大家共担

  • 有趣的是, 在 cURL 中, HTTP 的 --referer 选项为了『符合标准』, 也『故意』拼错了

  • 对于一个英语或非英语者, 人难免会犯错, 改不了就将错就错, 大家要开放包容嘛
  • 如今 Web 自 HTTP 和 WWW 以来已经走过了 30 余年, 技术虽更新换代但核心未变, 这是十分可贵的, 值得我们每一个用户和开发者共同珍惜和维护

参考资料

这文章好水