IP
- IP全称Internet Protocal,主要约束两件时间
- 如何定位一台设备
- 如何封装数据报文,以方便与其他设备交流
只要你在互联网中,你就至少拥有一个独立的ip
- IP分为内网ip和外网ip
- 外网ip由你的网络运营商提供
- 内网ip则由你的路由器分配,路由器会在你的家中创建一个内网,然后内网会对你的每个设备分配对应的ip
- 路由器
路由器会把你内网的请求映射到公网上,然后通过运营商的DNS服务器解析对应域名的服务器ip,最后进行访问。内网是不能直接访问外网的,必须要经过路由器,同理外网想要访问内网,也是必须要经过路由器的,所以你可以把路由器认为是一台内外网交互的设备,并且兼顾网络防护,很多人也叫路由器为【网关】。
域名
域名就是IP的别称,如果你想要知道一个域名的ip,直接使用PING命令 ping baidu.com
一个域名可以拥有多个ip,主要是为了防止负载过高,起到一个负载均衡的目的。
当然一个ip也可以拥有多个域名,一般比较穷的开发者会使用,也叫共享服务器。
域名分为三级,最顶级是com,第二级对应baidu.com(俗称一级域名),第三级对应www.baidu.com(俗称二级域名),他们之间是父子关系,所以可以发现www是非常多余的,主要是很早之前用于声明他们的网站是www标准网站的一个方法。
DNS
DNS的主要作用在上面提到过,主要是用于解析域名对应的ip的工具,你通过浏览器向运营商发出一个访问域名请求,运营商的DNS服务器就会给你返回对应域名的IP地址,然后浏览器再拿着这个IP地址去像你所要访问域名的80/443端口请求访问对应的网页,使用nslookup命令可以查到域名对应的IP nslookup baidu.com
端口
这个时候需要说一下端口。端口主要是用于给对应的功能提供对应的窗口,比方说http服务就对应的是80端口,https服务对应的是443端口,ftp服务对应的是21端口,总共有65535个端口。前1024个端口是系统端口(0-1023),一般不推荐用户占用,后面的端口才是给用户使用所准备的,一般http-server默认使用8080端口,端口如果被占用,就只能使用端口。
URL
URL由协议+域名/IP+端口号+路径+查询字符串+锚点组成,举个例子:
https://baike.baidu.com/item/Nslookup%E5%91%BD%E4%BB%A4/7305522?fr=aladdin#%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF
其中https://表示网页所使用的协议、baike.baidu.com/表示域名、https默认端口443,不写也无所谓,写了浏览器会自动隐藏、item/Nslookup%E5%91%BD%E4%BB%A4/7305522就是路径,这里需要说明一下网页地址是不能有中文的,所有的中文都会自动转换成%+字母+数字的组合,这里原本是item/Nslookup命令/7305522、之后的?fr=aladdin就是查询字符串、最后的#%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF就是锚点,同样无法显示中文。