把URL五马分尸
你一定每天工作显得很忙,你一定各种资讯、八卦、娱乐信息一条不漏,下班后感觉一天头昏脑胀,好像并没有真正干什么事情,有木有?
不知道你啥样,我基本每天早九晚九,浑浑噩噩,但是好像八卦一个都没落下。
你每天打开几十个页面,是否观察过它们的Url地址?今天带你“庖丁”解牛(庖丁两个字带了引号哦,你应该可以看出我是个很谦虚的人),让Url跳段脱衣舞,把它拆开细细和每个部分谈谈。
一个标准的Url地址由这几部分组成,protocol,hostname,port,path,parameters,query组成,这样显得太干巴了,还是举个栗子来说明。
照葫芦画瓢,我们按照刚才说的几个部分来拆解一下,杜撰一个链接如下:
http://news.qq.com/a/20160209/012154.htm?a=1&b=2&c=3
Protocol
指 http:// 这部分,是协议的意思,协议就是一套规则,它定义了数据如何封装、打包、拆包和解释的规则,比如我答应过你,只爱你一个人,就是一套协议,我们两个人的交往都是按照这套规则来进行的,我同时找两个妹子,你就可以说我没有按照我们之间的协议来恋爱了。也即只有通过http这套规则访问这个页面资源。你是否还见过https、ftp、thunder这些协议头,Url地址标识一个资源,你可以通过不同的规则(协议)访问到它,当然前提是存放这些资源的服务器支持这个协议。
一个剧院,座位位置被看做资源,看客只有获取到这个资源,才能看到这个剧目。现在过年,人比较多,为了防止发生踩踏事件,不但开放正门,还多开放两个侧门。我们脑补一下,观众的票面上标识了什么信息,一定有座位的信息(几排几号),也即相当于Url的后半部分,但是这个Url的协议头,有的票面标了从正门进,有的标识了从侧门进,这就相当于协议,一种是走正门的规则进入,另一种是走侧门的规则进入,你拿着走正门的票从侧门进入,应该是被拒绝的(正常情况下,大家都是拒绝后入的呢),否则你无法获取到最终的资源(座位),所以采用何种协议,至关重要。前面所讨论的前提都是要侧门开放,也即服务器支持这种协议,不开放侧门,你的地址就是失效的哦,访问不到这个资源。
这部分就介绍完了,总之,协议头标识了用什么规则访问具体的资源,以后你看到不同的协议头,就想想这个例子。当然你也可以设计一个协议,比如叫abc://也是可以的,这种就是自定义协议。
Hostname
Hostname称为主机名,在例子中的Url中,news.qq.com就是Hostname,主机可以理解为一台机器的名字叫news.qq.com,这台主机在qq.com这个域名下,qzone.qq.com也在qq.com这个域名下,还有很多比如v.qq.com等等。
其实我所理解的,主机名跟域名是差不多的意思,反正我是一直没区分开来理解,好像理解成一个意思,好像也没出什么错。
顺便介绍下qq.com叫做一级域名,尤其国内很多人认为www.qq.com是一级域名,其实大错特错,它只不过是一个二级域名。www等同于刚才说的news。
www.qq.com/news.qq.com/qzone.qq.com/v.qq.com分别都是二级域名。
Path
/a/20160209/012154.htm,在host后面的一长串全部叫做path,翻译过来就是路径的意思。就是最终文件所在的路径和文件名。例如:在我的电脑中,有一个路径存储着一些我喜欢的电影(F:\CCAV\波多野结衣\1.avi),只不过此地址是在我的本地电脑上,而上面的那个路径是存储在腾讯的服务器,也即news.qq.com这个域名下的若干台机器上中的。
Parameters
?a=1&b=2&c=3,这一部分称为参数,也叫查询。它的目的是在Url中带上去一些本地的信息传给服务器,a、b、c三个字符是我为了理解简单杜撰的(在baidu的Url中的参数是这样的:?ie=utf-8&f=8&rsv_bp=1&tn=baidu),这些Key-Value的键值对标识了一些特定的意义,但最终是要服务器进行判断处理的。其中参数部分加上一些你随便填写的值并不会出错,比如加上&d=4,只不过服务器不解析这部分罢了。
Port
Port称为端口号,一般http的端口号为80,https为443,可以理解为计算机可以有很多个提供服务的点,比如可以用默认的80端口来提供服务,同时也可以用81来服务。把一个主机比喻成一间房子的话,那么这间房子可以有65536个门,门就是端口号,这么多端口都可以达到进出的目的。我们上面的Url没有写任何的端口号,即默认为80。http://news.qq.com:8080/a/20160209/012154.htm?a=1&b=2&c=3#p=1,这个Url指定了从8080这个端口号,也即从这个门访问资源,那这个网页服务器必须在这个端口首先部署服务(也就是先把门打开,才能提供服务),才能供用户访问。
不管再长的Url都是由这几个关键部分组成的,只要你会分割出上面介绍的几个主要部件,就能看出各部分的意义,这是互联网的基本功,希望亲们能够理解。
#专栏作家#
给产品经理讲技术,微信公众号(pm_teacher),人人都是产品经理专栏作家。资深程序猿,专注客户端开发若干年,对前端、后台技术略懂,热衷于对新的科技领域的探索。
本文原创发布于人人都是产品经理,未经许可,不得转载。
-
微信创始人张小龙首次公开演讲(官方无删减版)
微信创始人张小龙首次公开演讲(官方无删减版) -
如何通过APP看到产品战略层面
产品经理拿到一款产品的时候,不能只能看到表面信息,而是要能看到产品背后的信息。 -
基于用户的“真需求”创新产品
产品创新是保证企业在竞争激烈的市场上长久生存的关键,今天,我们就围绕产品创新和用户研究分享一些看法。 -
有一种交互设计研究验证叫“设计走查”
如何在最短的时间内对自己的产品做出检验,确保其在定位、设计、营销计划等多个环节,在可视范围内是正确的,需要一套比较科学、完善的方法去做出检测。 -
你为什么离不开微信?
张小龙说用完即走,你却爱不释手; 到底是什么让你离不开微信? -
移动互联时代APP的发展方向
现在我们已经走上了移动互联网时代,无论是企业还是公司,都会经过网络竞争中争取有利的优势,较为传统的产品竞争逐渐向互联网竞争转型,出现了很多数据云大数据等等 -
AI 时代产品经理的机遇和挑战
AI 时代产品经理的机遇和挑战 -
前1%与前10%的产品经理差距在哪?
前1%与前10%的产品经理差距在哪? -
你有哪些策略应对不断的需求变更?
你有哪些策略应对不断的需求变更? -
如何运营天猫【十亿俱乐部】商家页面?
如何运营天猫【十亿俱乐部】商家页面?