你真的了解网址么?

前两天一个做网络营销的朋友联系我,说客户的网页出问题了,问题是这样的:

客户网站网址是:https://www.example.com
网站有一个功能,在网址后面输入 #popup 就会在页面弹出一个对话框
朋友为了给网站添加追踪统计,需要给网址添加一个查询参数 ?source=abc ,最终网址长这样:https://www.example.com#popup?source=abc
朋友的问题来了:为什么网页上的对话框弹不出来了?

我修改了一下网址片断的顺序发给朋友,她说:“好了!”。下面我们追根溯源,一起研究下 https://www.example.com#popup?source=abc 这个网址问题出在哪里。

你真的了解网址么?

什么是网址

在互联网上,每一个资源都有自己唯一的地址,也就是我们通常称呼的 URL(Uniform Resource Locator,统一资源定位符)。

网址的语法

没错,网址也有语法,就跟咱们自然语言有主谓宾一样,并且顺序是一定的

protocol :// hostname[:port] / [path] / [?query][#fragment]

方括号 [ ] 为可选项

你真的了解网址么?

协议

协议就是一种约定,现实生活中我们的插座有两口和三口的,这就好比两个协议,如果我们插头跟插座匹配,则可以供电,如果不匹配则不能。

互联网用来数据传输的协议有很多,我们访问网站都是通过 HTTP 协议,至于为什么现在主流的网站网址前都是 HTTPS 我们再后面的文章中再细说(敲黑板,可以先点个订阅了)。

常见的协议有下面这些:

  • http: 超文本传输协议,也是我们上网最常见的
  • ftp: 是一种资源访问协议,可以读写远程服务器上的文件
  • mailto: 电子邮件协议,如果网页上的链接是 mailto 协议的,那么点击这个链接则会打开电脑默认的邮件客户端,比如 outlook, foxmail 等
  • thunder: 用过迅雷下载的同学应该不陌生
  • rtmp:最近这几年直播大火,一个个直播间的背后就是通过这个协议进行直播视频流的传输

域名

互联网上的每一台计算机都有一个 IP 地址就像这样 192.168.1.1, 如果我们要访问一台计算机上的网站就要记住一个 IP 地址就太痛苦了,所以我们把这些长串的数字都映射成了好记的域名,例如:www.qq.com。

端口

如果把一个计算机看作是一栋有五个单元的楼房,那么端口就是每个单元的大门,虽然你进入哪个单元都是进入了这栋楼房,但是你拜访的是完全不同的住户。

路径

接上面的,路径就好比一个单元里不同的住户,指定不同的路径,就可以进入不同的人家。

查询

当你敲门时,屋里的人问你是谁,你回答说:“我是张三”,这时候 URL 上的体现就是 ?who=张三,这样这家人(计算机)就知道你是张三了。

信息片断(锚点)

如果网址上写着 #卫生间,那么当主人给你开门后,你就会直接走进人家的卫生间。

“网站有一个功能,在网址后面输入 #popup 就会在页面弹出一个对话框”

这就是为什么打开网页可以直接定位到一个打开的弹出框。

最后

说了这么多,你知道https://www.example.com#popup?source=abc 这个网址问题出在哪里了么,当你看到浏览器地址栏里长长网址时,能分清它的结构了么?

如果不确定正确网址是什么,在请关注微信公众号:你的程序员男朋友,发送 【正确网址】,将会告诉你正确答案。


分享到:


相關文章: