课程大纲
一、定义
URL即访问的链接,是Uniform Resource Locator的缩写,译为"统一资源定位符"。
URL是一种URI,它标识一个资源(可以是电脑本地或者互联网资源,常见于标识互联网资源),并指定对其进行操作或获取该资源的方法。
二、url组成
URL的一般语法格式(带方括号的为可选项):
protocol://hostname[:port]/path/[:parameters][?query]#fragment
protocol | 协议。比如http。 |
hostname | 主机名。 |
port | 端口号。若无指定,http默认为80。 |
path | 路径。 由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。 |
Parameters (很少用) | 用于指定特殊参数的可选项,由服务器端程序自行解释。 |
query | 查询,传递参数。 可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。 如上节课”带参数的get请求”:http://www.baidu.com/?ie=utf-8&f=8 |
fragment | 信息片段,指定网络资源中的片段。 类似于文章目录,比如某网页文章中多个标题,指定跳转到某标题内容。 |
简单来说,URL格式有2种格式,区别在于使用域名还是IP:
① {协议名}://{域名}/{路径}
(域名后也可以加“ :端口号 ”,但非常少见)
举例:http://blog.youkuaiyun.com/weixin_37846886/article_id=123
② {协议名}://{IP}[:端口号]/{路径}
举例:http://127.0.0.1:9999/login
三、域名和IP的区别与联系
1.格式与可读性
域名:以点(.)分隔的字母或数字组成的字符串。易于记忆与识别。
IP地址(特指IPv4):由32位二进制数组成(例如192.168.1.1)。更易于计算机存储与处理。
2.功能
域名:用于在互联网上标识计算机或服务的位置,与具体的IP地址进行绑定,通过DNS进行解析。
IP地址:为互联网上每一个网络和每一台主机分配一个逻辑地址,以此屏蔽物理地址上的差异。IP地址是机器之间通信的基础.
3.映射关系
域名与IP地址并不强制性一一绑定,在某些特殊情况下可能出现一对多或多对一的情况。但通常情况下一个域名值对应一个IP地址,这样的绑定关系是通过DNS实现的。
① 域名和IP可能一一对应。
② 可能N个域名对应一个IP。(如泛域名解析、多个项目共用一个服务器)
③ 可能一个域名对应多个IP。(如基于域名做负载均衡,不同人请求返回不同的IP,类似cdn)
总结
IP地址是互联网协议中的基本概念,它是互联网中所有设备的唯一标识符。IP地址用于确保数据能够准确地从一台设备传输到另一台设备。
域名则是一种互联网上的字符型地址标识,用于代替难以记忆的IP地址。域名建立了一个更友好和直观的访问方式,使得互联网上的资源更加容易访问和管理。
3.1为什么使用域名?
域名(Domain Name):又称网域,是由一串用点分隔的名字组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
由于IP地址不方便记忆,并且不能显示地址组织的名称和性质,人们设计出了域名,并通过域名系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
使用域名的优点:
① 方便访问者记忆;
② 灵活,可更换与域名映射的IP(如切换后端服务)。
3.2 DNS实现域名和IP的映射
DNS(Domain Name System):一套从域名到IP的映射系统。
一个组织的系统管理机构,维护系统内的每个主机的IP和主机名的对应关系。
如果新计算机接入网络,将这个信息注册到数据库中。
用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库,得到对应的IP地址。
3.3 域名访问网站流程
3.4 CDN加速服务简介
前言:cdn加速可针对域名也可针对IP,此处以域名为例简要介绍cdn加速的实现过程,不做过多深入研究。
CDN(Content Delivery Network):内容分发网络。
访问速度会受到网络传输速度的影响,为提升访问速度,某些服务会在不同区域部署相同的服务器(冗余),根据访问者的IP识别区域并返回距离最近的服务器IP。
CDN工作流程:
DNS域名解析的映射有2种:
① {域名:IP}
② {域名:别名(CNAME)}
别名(CNAME)也是一个域名,由特定的CDN服务商提供,同一个服务可能在不同区域分别部署相同服务器,具有不同IP。则该CDN服务商搭建自己的DNS服务器,存储IP。
当DNS解析出别名,会将别名发送至其所属的CDN专用DNS服务器再进行解析,进行IP分配和返回,供访问者使用。
举例:如百度在全国各地有服务部署,在北京输入www.baidu.com进行访问,域名解析与访问加速过程如下。
此流程即域名的多级解析,可理解为:
Step1、访问者发送域名至DNS;
Step2、DNS将请求发送至百度服务集群;
Step3、百度返回距访问者最近(最快)的服务器IP(如北京服务器IP);
Step4、访问者访问返回的IP。
特别鸣谢:某老师的纠正
| | |
参考文章:
1、《URL格式》(不太准确)
https://baike.baidu.com/item/URL%E6%A0%BC%E5%BC%8F/10056474?fr=aladdin
2、《DNS(域名系统)》
https://blog.youkuaiyun.com/dreamnn/article/details/135560891
3、《超清晰的DNS入门指南,看这篇就够了》
https://zhuanlan.zhihu.com/p/696346689
4、《程序员要搞明白CDN,这篇应该够了》
https://blog.youkuaiyun.com/weixin_44129618/article/details/126501046