URL是什么

487 阅读4分钟

WWW=URL+HTTP+HTML

URL 的构成

URL = 协议 + 域名或IP + 端口号 + 路径(文件部分) + 查询参数 + 锚点

urlExample.png

1. HTTP(协议)

  • HTTP(协议)用来表示如何传输网页的
  • 是基于TCP和IP两个协议发明的
  • 对前端来说只有两种协议http或者https,https默认端口号443

2.1 IP(协议)

  • IP协议用来表示每个设备的地址。
  • 是TCP/IP体系中的网络层协议。

IP主要约定了两件事

  • 如何定位一台设备:有IP就可以定位一台设备
  • 如何封装数据报文,以跟其它设备交流

IP分内网IP和外网IP

  • 外网就是路由器之外,内网就是路由器包括的有线和无线

几个特殊的IP

  • 127.0.0.1 表示自己
  • 可以通过hosts将localhost指定为自己,hosts可使任意字符串变成一个对应的ip
127.0.0.1:8080 = localhost:8080

2.2 域名

域名就是对IP的别称

1. 一个域名可以对应不同IP

一般ping同一个域名会得到不同的IP,这个叫负载均衡,防止一台机器扛不住,可以把这个域名绑定到多个不同的IP引流,将压力平均分给多个IP分摊。这样,假设即使同时有100万人访问百度,但有了多个IP的同时分担,也能轻松应对。

2. 一个IP可以对应不同域名

这个叫做共享主机,穷开发者会这么做

2.3 DNS 域名系统与nslookup的命令

  • 域名和IP是通过 DNS(全称域名系统) 对应起来的
  • DNS 是域名系统 (Domain Name System) ,DNS是用来做域名解析的,它会在你上网输入网址后,把它转换成IP,然后去访问对方服务器。
  • nslookup是我们最常用的命令之一,它是一个用来进行域名解析的命令,也可以实现DNS服务器的查询。
nslookup www.baidu.com 

注意

www.baidu.com和baidu.com不是同一个域名

  • com是顶级域名
  • baidu.com是二级域名(俗称一级域名)
  • www.baisu.com是三级域名(俗称二级域名)
  • 他们之间是父子关系,baidu.com是www.baisu.com的父级。github.io把子域名xxx.github.io免费给你使用
  • 所以www.baidu.com和baidu.com可以不是同一家公司,也可以说 www是多余的,只有外行才去用,程序员网站一般都不提供www前缀

3. 端口 port

一台机器可以提供很多服务。每个服务一个号码,这个号码就叫端口号port

1. 一台机器可以提供不同服务

  • 要提供HTTP服务最好使用80端口。(超文本传输协议- 用于传输网页)
  • 要提供HTTPS服务最好使用443端口。(超文本传输安全协议或QUIC)
  • 要提供FTP服务最好使用21端口。(文件传输协议 - 控制端口)
  • 一共有65535个端口(基本够用)

2. 端口使用还有什么规则?

IP和端口总结:

  • IP是用来定位一个设备的;
  • 端口是用来定位一个设备的服务的;
  • IP端口缺一不可
  • 有了IP和端口就可以定位一个设备提供的服务

4. 路径

文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“s”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名

5. 查询参数

从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“wd=hello&rsv_spt=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。

6.锚点

从“#”开始到最后,都是锚部分。本例中的锚部分是“5”。锚部分也不是一个URL必须的部分