浅析URL

323 阅读3分钟

一、体验一下URL

下面我们来做一个平时查资料的一系列动作。

https://developer.mozilla.org/zh-CN/

输入上方URL地址,进入网页 在搜索框搜索搜索css之后,观察URL地址如下

https://developer.mozilla.org/zh-CN/search?q=css

搜索css后内容如下,点击css,观察URL变化

https://developer.mozilla.org/zh-CN/docs/Glossary/CSS

二、URL

URL组成

  • URL(Uniform Resource Locator)是由协议、域名或者IP(有时也包括端口)、路径、查询参数、锚点组成,其中一些是可省的,一些是必须的。下方是一个完整的URL示例
http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument

协议

  • https://是协议,protocol。表明了浏览器必须使用何种协议。还有http等协议,web需要他们二者之一,但浏览器也知道如何处理其他浏览器。

端口

  • http://www.example.com:80,冒号 后面的这个数字就是端口 用来定位一个设备提供的服务
  • 一台机器可以提供不同服务
    (1) 提供HTTP服务最好使用80端口
    (2)提供HTTPS服务最好使用443端口
    (3)提供FTP服务最好使用21端口
    (4)不同的服务对应不同的窗口。就像买火车票,有售票窗口、退票窗口,你在售票口不是可以退票的,所以一般来说你想要什么服务就去什么样的窗口。那么问题来了,我怎么知道我要的服务是什么窗口呢?去查端口列表。
  • 一共有65535个端口
  • 0到1023号端口是留给系统使用的,想要使用需要获得管理员权限 一般来说端口可以省略的,比如http-server默认使用8080端口 一个端口如果被占用,就只能换一个端口

域名或者IP

  • https://http://developer.mozilla.org/zh-CN/,其中http://developer.mozilla.org就是域名,表明正在请求哪个服务器,也可以使用IP(Internet Protocal)
  • 域名
    (1)域名可分为不同级别,包括顶级域名、二级域名、三级域名、注册域名。在域名系统的层次结构中,各种域名都隶属于域名系统根域的下级。
    (2)域名的第一级是顶级域,它包括通用顶级域,例如.com(公司)、.net和.org(非营利性组织);以及国家和地区顶级域,例如.us、.cn和.tk。顶级域名下一层是二级域名,一级一级地往下
  • 域名与IP的关系
    (1)域名就是对IP的别称
    (2)一个IP可以对应不同的域名,例如公司太穷,与别人共用一个服务器。
    (3)一个域名可以对应多个IP,例如,百度这样的大公司,可能就有多个服务器,每个地域有一个,那么像华北地区的人去访问百度的时候,服务器就是华北的那台服务器。多个服务器用来分流,达到负载均衡,就像路上车子很多就会堵车,那么这个时候如果有多个分叉路口,就可以分流啦,就不会堵车了。
  • 那么域名是怎样与IP对应起来的呢?通过DNS。

路径

`http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument`

*/path/to/myfile.html是路径,表示服务器上物理文件的位置 通俗来说,就是页面,改变路径就是不同的页面

查询参数

https://developer.mozilla.org/zh-CN/search?q=css
  • ?q=css是查询参数,我理解为是你查询的内容是css 能够实现同一个页面,不同内容,例如将上方css变成html

锚点

  • #加内容,是锚点,类似于书签,定位内容里的某一位置
  • #后面的部分从来没有发送到请求的服务器

三、DNS

  • D就是域名,N就是名字name,s是系统
  • 当输入网址的时候,浏览器会向电信/联通提供的DNS服务器询问该网址对应的IP
  • 得到IP之后,浏览器就会去对应IP的80/443端口(这是默认的)发出请求
  • 请求内容是查看该网站首页
  • 如何获得DNS服务器名称
nslookup github.com

四、如何知道域名对应的IP?

ping qq.com