浅析url

123 阅读2分钟

IP       Internet protocal

  • 约定了两件事
  1. 如何定位一台设备
  2. 如何封装报文,和其他设备交流
  • 几个特殊IP
  1. 127.0.0.1表示自己
  2. localhost通过hosts指定为自己(hosts文件只能以管理员模式打开)
  3. 0.0.0.0不表示任何设备

端口  port

一般是指TCP/IP协议中的端口,端口号的范围从0到65535,一台机器可以提供不同服务:

  • 比如提供HTTP服务的80端口;
  • 提供HTTPS服务的443端口;
  • 提供FTP服务的21端口等

域名

域名是对IP的别称

例如baidu.com对应的ip可以通过命令行输入ping 域名 获得

  • 一个域名可以对应不同的IP,叫做负载均衡
  • 一个IP可以对应不同的域名,叫做共享主机
  • 域名级别:
    1. com是顶级域名
    2. baidu.com是二级域名(俗称一级域名)
    3. www.baidu.com是三级域名(俗称二级域名)

DNS    Domain Name System

IP和域名通过DNS对应起来

  • 作用:简而言之将域名解析为IP
  • 命令行输入nslookup baidu.com 会返还baidu.com对应的所有IP

当你在chrome输入baidu.com 时发生了什么

  1. chrome浏览器会向电信/联通提供的DNS服务器询问baidu.com对应什么IP
  2. 电信/联通会回答一个IP(具体过程很复杂)
  3. 然后chrome才会向对应的IP的80/443端口发送请求
  4. 请求内容是查看baidu.com的首页

URL

协议+域名或IP+端口号+路径+查询字符点+锚点

  • 注意:
  1. 锚点看起来可能有中文,实际不支持中文。
  2. 锚点是无法在开发者工具的Network面板看到的,因为锚点#后面不会传给服务器

curl命令

curl -v http://baidu.com发HTTP请求

  • url会被curl工具重写,先请求DNS获得IP
  • 先进行TCP连接,TCP连接成功后,开始发送HTTP请求