网站URL双斜杠的隐藏秘密 📅 发布时间:2026/7/11 23:23:02 👁️ 浏览次数: 你打开浏览器在地址栏里敲下一个网址。https://www.google.com看到那两个斜杠了吗就夹在https:和www中间的那对//。你每天都在看它复制它粘贴它。但你大概从来没停下来想过这两道杠到底是干什么的。咱们把一个完整的网址拆开看看。https://www.example.com/path/to/pagehttps是协议告诉浏览器用什么方式去请求资源。www.example.com是主机名告诉浏览器去找哪台服务器。/path/to/page是路径告诉服务器你具体要哪个东西。那//呢在 URI 的规范里RFC 3986//后面跟着的部分叫 authority翻译过来就是「谁来响应你这个请求」。//是它的开头标记用来把协议名和主机名隔开。你可以把它想成一个路标。路标本身不是目的地但它告诉你从这里开始后面写的是服务器的名字了。问题在于这个路标不是非它不可。1989 年Tim Berners-Lee 在 CERN 设计 URL 语法。路径部分的斜杠/直接照搬了 Unix 的文件路径写法这很自然用过 Unix 的人一看就懂。但//这个双斜杠不是他自己想出来的。他从一台叫 Apollo Domain 的工作站上抄来的。Apollo 是 1980 年代的一款高端工作站。它的操作系统有个在当时很前沿的能力可以直接在文件路径里访问网络上其他机器的文件不用额外装什么传输工具。语法长这样//machine_name/path/to/file两个斜杠开头后面跟机器名再接文件路径。双斜杠的作用是告诉系统「注意这不是本地目录是另一台机器」。Berners-Lee 在 CERN 接触过这种工作站觉得这个写法挺清楚的就直接搬过来用了。他自己后来也说过这件事原话是「I just copied Apollo」。于是http://后面那两个斜杠就这么定下来了。你可能会问那不用//行不行完全可以。你看mailto:someoneexample.com这也是一个合法的 URI没有//。因为发邮件不需要去找一台服务器邮件地址本身就够了。tel:8613800138000打电话也没有。你可以在浏览器里敲这个号码浏览器会直接呼叫你的电话应用。data:text/html,h1Hello/h1更极端。你可以把这行直接粘到浏览器地址栏试试。浏览器会渲染出一个大标题。整个「网页」就是这行地址本身没有服务器没有网络请求。再试这个data:text/html,marqueehello world/marquee四个字在屏幕上滚来滚去。marquee是上古时代的 HTML 标签W3C 早就不推荐了但浏览器到今天还认它。一个被标准抛弃了二十年的标签靠一行 URL 复活了。还有更离谱的data:text/html,input typecolor你会看到一个颜色选择器凭空冒出来。一个可以点击、可以交互的完整控件藏在一行 URL 里背后什么都没有。你可能还听说过javascript:开头的地址可以直接在浏览器里跑代码。不过现代浏览器已经不让你从地址栏粘贴javascript:了手动敲可以粘贴会被吞掉。浏览器怕你被人忽悠着粘一段恶意脚本进去。规律到这里就很清楚了。需要找服务器的协议才有//HTTP 有FTP 有SSH 有。不需要的mailto 没有tel 没有data 没有javascript 也没有。//不是 URI 的默认配置而是「我要连一台机器」时才亮的信号灯。再看一个更逗的file:///Users/xxx/Desktop/test.html。数一下三个斜杠。前两个是//标记 authority 的位置。但本地文件没有远程服务器authority 是空的//后面直接接上了路径开头的/。三道杠挤在一起看着有点滑稽语法上却完全正确。就好像你写了一个「收件人」但后面跟的是你自己家地址。前端开发的同学可能还见过一种更骚的写法script src//cdn.jquery.com/jquery.min.js/scriptURL 开头直接就是//连协议名都没有。浏览器看到这种写法会自动继承当前页面的协议页面是 HTTPS 就用 HTTPS 请求页面是 HTTP 就用 HTTP。这个技巧在 2010 年前后很流行当时很多网站在 HTTP 和 HTTPS 之间来回切写死协议容易出问题。现在基本见不到了全世界都上了 HTTPS。但这种写法能存在恰恰说明//在 URI 语法里的角色有多独立。它不依附于任何协议名只做一件事宣告「后面是服务器」。有意思的是现在大多数浏览器已经不显示https://了。Chrome 藏了Safari 也藏了。你盯着地址栏看只能看到一个干净的域名。想看完整的 URL需要单独设置。当年 Berners-Lee 道歉说这两个字符浪费了太多纸和墨水。他大概没想到最后的解法不是从规范里删掉它们而是在界面上假装它们不存在。你打开浏览器在地址栏里敲下一个网址。https://www.google.com看到那两个斜杠了吗就夹在https:和www中间的那对//。你每天都在看它复制它粘贴它。但你大概从来没停下来想过这两道杠到底是干什么的。咱们把一个完整的网址拆开看看。https://www.example.com/path/to/pagehttps是协议告诉浏览器用什么方式去请求资源。www.example.com是主机名告诉浏览器去找哪台服务器。/path/to/page是路径告诉服务器你具体要哪个东西。那//呢在 URI 的规范里RFC 3986//后面跟着的部分叫 authority翻译过来就是「谁来响应你这个请求」。//是它的开头标记用来把协议名和主机名隔开。你可以把它想成一个路标。路标本身不是目的地但它告诉你从这里开始后面写的是服务器的名字了。问题在于这个路标不是非它不可。1989 年Tim Berners-Lee 在 CERN 设计 URL 语法。路径部分的斜杠/直接照搬了 Unix 的文件路径写法这很自然用过 Unix 的人一看就懂。但//这个双斜杠不是他自己想出来的。他从一台叫 Apollo Domain 的工作站上抄来的。Apollo 是 1980 年代的一款高端工作站。它的操作系统有个在当时很前沿的能力可以直接在文件路径里访问网络上其他机器的文件不用额外装什么传输工具。语法长这样//machine_name/path/to/file两个斜杠开头后面跟机器名再接文件路径。双斜杠的作用是告诉系统「注意这不是本地目录是另一台机器」。Berners-Lee 在 CERN 接触过这种工作站觉得这个写法挺清楚的就直接搬过来用了。他自己后来也说过这件事原话是「I just copied Apollo」。于是http://后面那两个斜杠就这么定下来了。你可能会问那不用//行不行完全可以。你看mailto:someoneexample.com这也是一个合法的 URI没有//。因为发邮件不需要去找一台服务器邮件地址本身就够了。tel:8613800138000打电话也没有。你可以在浏览器里敲这个号码浏览器会直接呼叫你的电话应用。data:text/html,h1Hello/h1更极端。你可以把这行直接粘到浏览器地址栏试试。浏览器会渲染出一个大标题。整个「网页」就是这行地址本身没有服务器没有网络请求。再试这个data:text/html,marqueehello world/marquee四个字在屏幕上滚来滚去。marquee是上古时代的 HTML 标签W3C 早就不推荐了但浏览器到今天还认它。一个被标准抛弃了二十年的标签靠一行 URL 复活了。还有更离谱的data:text/html,input typecolor你会看到一个颜色选择器凭空冒出来。一个可以点击、可以交互的完整控件藏在一行 URL 里背后什么都没有。你可能还听说过javascript:开头的地址可以直接在浏览器里跑代码。不过现代浏览器已经不让你从地址栏粘贴javascript:了手动敲可以粘贴会被吞掉。浏览器怕你被人忽悠着粘一段恶意脚本进去。规律到这里就很清楚了。需要找服务器的协议才有//HTTP 有FTP 有SSH 有。不需要的mailto 没有tel 没有data 没有javascript 也没有。//不是 URI 的默认配置而是「我要连一台机器」时才亮的信号灯。再看一个更逗的file:///Users/xxx/Desktop/test.html。数一下三个斜杠。前两个是//标记 authority 的位置。但本地文件没有远程服务器authority 是空的//后面直接接上了路径开头的/。三道杠挤在一起看着有点滑稽语法上却完全正确。就好像你写了一个「收件人」但后面跟的是你自己家地址。前端开发的同学可能还见过一种更骚的写法script src//cdn.jquery.com/jquery.min.js/scriptURL 开头直接就是//连协议名都没有。浏览器看到这种写法会自动继承当前页面的协议页面是 HTTPS 就用 HTTPS 请求页面是 HTTP 就用 HTTP。这个技巧在 2010 年前后很流行当时很多网站在 HTTP 和 HTTPS 之间来回切写死协议容易出问题。现在基本见不到了全世界都上了 HTTPS。但这种写法能存在恰恰说明//在 URI 语法里的角色有多独立。它不依附于任何协议名只做一件事宣告「后面是服务器」。有意思的是现在大多数浏览器已经不显示https://了。Chrome 藏了Safari 也藏了。你盯着地址栏看只能看到一个干净的域名。想看完整的 URL需要单独设置。当年 Berners-Lee 道歉说这两个字符浪费了太多纸和墨水。他大概没想到最后的解法不是从规范里删掉它们而是在界面上假装它们不存在。
4种贷款偿还方案Python建模:10万本金5年10%利率下的现金流与现值对比 4种贷款偿还方案Python建模:10万本金5年10%利率下的现金流与现值对比在软件工程和项目管理中,财务决策往往需要精确的数据支持。当企业面临贷款选择时,不同的还款方案会导致完全不同的现金流压力和财务成本。本文将通过Python构建一个完整的贷… 2026/7/11 23:23:02
企业微信机器人 vs 应用消息推送:5大核心差异与选型指南 企业微信机器人 vs 应用消息推送:5大核心差异与选型指南在企业数字化协作场景中,消息推送机制的选择直接影响信息触达效率。当技术决策者面对企业微信提供的两种主流方案——群机器人与应用消息推送时,往往陷入选择困境。本文将深入剖析两者的… 2026/7/11 23:21:02
从模糊草图到商业级成图:1个原始PNG触发17种专业输出模式——Midjourney图生图工业级管线拆解 更多请点击: https://intelliparadigm.com 第一章:从模糊草图到商业级成图:1个原始PNG触发17种专业输出模式——Midjourney图生图工业级管线拆解 在工业级AI视觉生产中,一张低分辨率手绘草图(如800600 PNG࿰… 2026/7/11 23:17:01
路由器双频合一功能:3种主流品牌(TP-Link/华为/小米)关闭步骤实测 路由器双频合一功能关闭指南:TP-Link/华为/小米详细操作手册家里智能设备频繁掉线?扫地机器人总是连不上Wi-Fi?问题可能出在路由器的"双频合一"功能上。这个看似方便的设计,实际上会给大量仅支持2.4GHz频段的智能家居设… 2026/7/12 0:37:21
FREE!ship Plus:从零开始的船舶设计开源解决方案 FREE!ship Plus:从零开始的船舶设计开源解决方案 【免费下载链接】freeship-plus-in-lazarus FreeShip Plus in Lazarus 项目地址: https://gitcode.com/gh_mirrors/fr/freeship-plus-in-lazarus FREE!ship Plus是一款基于Lazarus/Free Pascal开发的专业级开… 2026/7/12 0:33:20
Rnote:如何用这款免费开源工具解决你的数字手写与笔记整理难题? Rnote:如何用这款免费开源工具解决你的数字手写与笔记整理难题? 【免费下载链接】rnote Sketch and take handwritten notes. 项目地址: https://gitcode.com/GitHub_Trending/rn/rnote 你是否曾为寻找一款真正好用的数字手写笔记软件而烦恼&… 2026/7/12 0:33:20
临时文件清完C盘还是不够?WinSxS组件存储、系统还原点是隐藏占用大头 临时文件清空后C盘占用数字几乎不变,很多人第一反应是清理没有生效,其实这是判断维度选错了。C盘空间紧张背后,真正占大头的通常是浏览器缓存、下载残留、Windows.old系统备份、休眠文件、系统还原点和WinSxS组件存储这类不容易被注意到的位置… 2026/7/12 0:29:20
那条测地线 那条测地线 夜深的时候,我又翻出了那段代码。不是检查——那东西已经在模拟器里跑了不知道多少万次了,不需要再检查。只是看。像看一段写完了很久的字,你不去改它,只是确认它还在那里。 G2。十二行,核心就两行。一行是… 2026/7/12 0:27:19
后端开发者必须掌握的五个核心设计模式 一个深夜,你盯着屏幕上那团乱麻般的代码,日志里反复报错,某个对象被莫名创建了上百次,数据库连接池早已耗尽,服务器开始喘不过气。你突然意识到,那些当年在书本上被轻轻带过的设计模式,此刻正化… 2026/7/12 0:23:19
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/12 0:01:13
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/12 0:01:13
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/12 0:03:14
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/12 0:01:13
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/12 0:01:13
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/12 0:03:14