WWW=URL+HTTP+HTML
URL 的构成
URL = 协议 + 域名或IP + 端口号 + 路径(文件部分) + 查询参数 + 锚点
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. 端口使用还有什么规则?
- 0到1023号端口是留给系统使用的
- 查看TCP/UDP端口列表#0到1023号端口
IP和端口总结:
- IP是用来定位一个设备的;
- 端口是用来定位一个设备的服务的;
- IP端口缺一不可
- 有了IP和端口就可以定位一个设备提供的服务
4. 路径
文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“s”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名
5. 查询参数
从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“wd=hello&rsv_spt=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。
6.锚点
从“#”开始到最后,都是锚部分。本例中的锚部分是“5”。锚部分也不是一个URL必须的部分