浅析 URL

132 阅读4分钟

英语课堂

protocol 协议

HTTP 超文本传输协议 HyperText Transfer Protocol

DNS 域名系统 Domain Name System

IP(internet protocal)

cmde命令 ping+网址 可以得到IP地址

  1. 标识主机:更具体地说,标识其网络接口,并且提供主机在网络中的位置。

  2. 封装数据报文,以跟其他设备交流。

外网IP

只要路由器连上服务器,那么路由器就会有一个外网IP,只要路由器关机重启 外网IP就会改变。

内网IP

路由器会在家里创建内网,路由会给每个使用内网的设备分配一个不同的内网IP

路由器的功能

  • 现在路由器有两个IP,一个外网IP和一个内网IP
  • 内网中的设备可以互相访问,但是不能直接访问外网
  • 内网设备想要访问外网,就必须经过路由器中转
  • 外网中的设备可以互相访问,但是无法访问你的内网
  • 外网设备想要把内容送到内网,也必须通过路由器
  • 也就是说内网和外网就像两个隔绝的空间,无法互通,唯一的联通点就是路由器
  • 所以路由器有时候也被叫做「网关」

特殊IP

127.0.0.1 表示自己

localhost 通过 hosts 指定为自己

0.0.0.0 不表示任何设备

端口(port)

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

常用端口:

HTTP为80

HTTPS为443

小贴士

端口和IP缺一不可 ;2者合起来解释为: 一个设备提供的服务。

域名

  • 一个域名可以对应不同IP
  • 这个叫做均衡负载,防止一台机器扛不住
  • 一个IP可以对应不同域名
  • 这个叫做共享主机,穷开发者会这么做

域名和IP对应过程(DNS)

cmde命令 nslookup+网址 直接查询域名情况

  • 你的Chrome浏览器会向电信/联通提供的DNS服务器
  • 问xxx.com对应什么IP
  • 电信/联通会回答一个IP (具体过程很复杂,不研究)
  • 然后Chrome才会想对应IP的80/443端口发送请求
  • 请求内容是查看xxx.com的首页

com是顶级域名

xxx.com 是二级域名

www.xxx.com 是三级域名 和 二级域名 是父子关系。

URL(统一资源定位服务)

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

域名:一个域名可以对应不同IP,一个IP可以对应不同域名域名和IP通过DNS对应起来(通常为域名,有时为IP地址)

.com(用于商业公司);.net(用于网络服务);.org(用于组织协会等);.gov(用于政府部门);.edu(用于教育机构);.mil(用于军事领域);.int(用于国际组织)

端口号:一台机器可以提供很多服务 每个服务一个号码,这个号码就叫端口号port。(以数字方式表示,若为默认值可省略)

路径:请求不同的页面;在Web的早期阶段,像这样的路径表示Web服务器上的物理文件位置。(以“/”字符区别路径中的每一个目录名称)

查询参数:同一个页面,不同内容;这些参数是用 & 符号分隔的键/值对列表。每个Web服务器都有自己关于参数的规则。(GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题)

锚点:在同一网页的位置 #开头

小贴士:
  • 锚点看起来有中文,实际不支持中文
  • 参考书会变成%E5%8F%82%E8%80%83%E4%B9%A6
  • 锚点是无法在Network面板看到的
  • 锚点不会传给服务器 会被浏览器吃掉

curl 命令

用curl可以发HTTP请求

cmde命令 curl -v 链接 显示更多的内容 例如: 端口 域名 IP

cmde命令 curl -s -v --链接

理解流程

  1. url会被curlI具重写,先请求DNS获得IP

  2. 先进行TCP连接,TCP连接成功后,开始发送HTTP请求

  3. 请求内容看一眼

  4. 响应内容看一眼

  5. 响应结束后,关闭TCP连接(看不出来)

  6. 真正结束


资料来源:饥人谷

本文为贰贰的原创文章,著作权归本人和饥人谷所有,转载务必注明来源