《浅析 URL》

361 阅读4分钟

为了方便阅读,还是以问答的形式来写~

URL 包含哪几部分,每部分分别有什么作用

URL是什么?

答:Uniform Resource Locator(统一资源定位系统)

URL主要包括的内容?

答:URL=协议+域名或IP+端口号+路径+查询字符串+锚点

  • 注意:端口一般不会显示:HTTP 默认80;HTTPS 默认443

IP是什么?

答:Internet Protocol(网际互连协议)

IP 的作用是什么

答: 主要约定两件事:

  1. 如何定位一台设备
  2. 如何分装数据报文,以跟其他设备交流

IP在外网和内网

答:

image.png

如何查询IP地址(为啥警察可以抓到网络诈骗)

答:

  • 终端输入 ipconfig (如果是连接路由器则不会显示外网地址)
  • 网站 IP138.com 可查询到本设备外网 IP

特殊的IP地址:

答:

  • 127.0.0.1 表示自己
  • localhost 通过 hosts 指定为自己
  • 0.0.0.0 不表示任何设备

在哪里找到 hosts

答:在 Windows 系统中,hosts 位于 C:\Windows\System32\drivers\etc\hosts 。在 macOS / Linux系统中,hosts 位于 /etc/hosts

如何用 hosts 指定自己

答:

  • hosts 一般需要用管理员权限才能编辑
  • hosts 文件中以 # 开头的表示注释
  • hosts 中可以添加一行 127.0.0.1 frank,让 frank 成为 127.0.0.1 的别称(frank 可以换成任何你想换的词)
  • 那么在浏览器中输入frank:8080/index.html ,即可打开本地index.html

端口

答:一台机器可以提供很多服务,每个服务一个号码,这个号码就叫端口号port

不同的服务对应的port

答:

  • HTTP服务推荐使用80端口
  • HTTPS服务推荐使用443端口
  • FTP服务推荐使用21端口
  • 一台设备一共有65535个端口(目前基本够用)
  • 我怎么知道该用什么端口 维基百科

端口的使用规则

答:

  • 0~1023(即210-1)号端口是给系统用的(拥有管理员权限才能使用这些端口,建议不要使用)
  • http-server 默认使用8080端口 (如终端输入:hs -c-1 -p 1234 可设置为使用1234号端口而不是默认的8080)
  • 一个端口被占用就只能换一个端口
  • 总而言之:IP 和端口缺一不可

域名

答:域名就是对 IP 的别称

如何查看域名

答:

  • 查域名对应的 IP(指本机当前访问的域名的 IP ,只是其中一个 IP)
  • ping+域名(如:ping baidu.com
  • 一个域名对应不同的 IP --均衡负载--防止一台机器扛不住
  • 多个域名对应一个 IP --共享主机--穷开发者的做法

域名和IP是怎么对应起来的(通过DNS Domain Name System(域名系统))

答:

  • 当你输入一个域名如:baidu.com,浏览器会向电信/联通等提供的 DNS 服务器询问 baidu.com 对应什么 IP
  • 然后浏览器会向对应 IP 的 80/443 端口发送请求
  • 请求的内容是百度的首页

nslookup 命令怎么用

答: image.png

这时可以打开开发者工具>Network 查看访问网站的全过程

image.png

为什么是80或者443端口

答:

  • 服务器默认了这两个端口
  • Https的默认端口是443

按照级别分类域名

答:

有个人就是靠倒卖域名变成了百万富翁,这个人是谁?

答:蔡文胜——域名之父

如何请求不同的页面(使用路径可做到)

答:

如何请求同一页面不同内容(查询参数可做到)

答:

同一内容不同位置(用锚点实现)

答: developer.mozilla.org/zh-CN/docs/…

  • 锚点看起来是有中文的,实际是不支持中文的,如上,# 后面原本是参考书三个字,复制过来是一串字符
  • 锚点无法在 Network 面板看到,因为锚点不会传给服务器

工具:curl命令行

  1. url会被curl工具重写,先请求DNS获得IP
  2. 先进行TCP连接,TCP连接成功后,开始发送HTTP请求
  3. 请求内容+响应内容
  4. 响应结束关闭TCP连接
  5. 结束