课程大纲
一、定义
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.csdn.net/weixin_37846886/article_id=123
② {协议名}://{IP}[:端口号]/{路径}
举例:http://127.0.0.1:9999/login
三、域名和IP的区别与联系
域名和IP一一对应。
3.1为什么使用域名?
域名(Domain Name):又称网域,是由一串用点分隔的名字组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
由于IP地址不方便记忆,并且不能显示地址组织的名称和性质,人们设计出了域名,并通过域名系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
3.2 DNS实现域名和IP的映射
DNS(Domain Name System):一套从域名到IP的映射系统。
一个组织的系统管理机构,维护系统内的每个主机的IP和主机名的对应关系。
如果新计算机接入网络,将这个信息注册到数据库中。
用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库,得到对应的IP地址。
3.3 域名访问网站流程
3.4 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。
3.5 总结使用域名的优点
①方便访问者记忆;
②灵活,可更换与域名映射的IP(如切换后端服务);
③安全,可隐藏服务器IP信息,避免服务器受到攻击等不安全因素;
④提高访问速度(CDN加速)。
参考文章:
1、《URL格式》
https://baike.baidu.com/item/URL%E6%A0%BC%E5%BC%8F/10056474?fr=aladdin
2、《DNS(域名系统)》
https://blog.csdn.net/dreamnn/article/details/135560891
3、《超清晰的DNS入门指南,看这篇就够了》
https://zhuanlan.zhihu.com/p/696346689
4、《程序员要搞明白CDN,这篇应该够了》
https://blog.csdn.net/weixin_44129618/article/details/126501046