浅析URL

URL包含什么

协议+域名或IP+端口+路径+查询字符串+锚点
此处省略了端口,https默认端口443
  1. 协议:HTTP或其他
  2. IP
  • IP:Internet Protocol,主要约定了两件事,一是如何认定位一台设备,二是如何封装数据报文,以跟其他设备交流,主要关心第一件事
  • 只要你在互联网中,就至少有一个独特的IP
  • IP分为内网和外网,外网IP地址由电信提供,需要购买,内网是由路由器提供,内网可以互相访问,外网也可以互相访问,但是内网和外网的互相访问,需要通过路由器,内网IP的格式一般是192.168.xxx.xxx


    内网和外网图片示例
  • 特殊的IP:0.0.0.0不表示任何设备,127.0.0.1表示自己,localhost,通过hosts指定为自己,可更改:用管理员身份运行记事本>>文件>>打开>>C>>windows>>system32>>drivers>>etc>>hosts,有#的表示注释,可以删掉,最后的两行就是默认的映射,在最后写127.0.0.1 chen 就将chen表示为自己,与127.0.0.1效果一样
  1. 域名:是IP的一个别称,可以用ping baidu.com 命令得到域名(baidu.com)的IP
  • 一个域名可以对应不同的IP,这个叫做均衡负载,防止一台服务器扛不住
  • 一个IP可以对因不同的域名,这个叫做共享主机
  • 域名和IP是通过DNS对应起来的
  • www.xiedaimala.com 和xiedaimala.com 不是同一个域名,www很多余,一般都不会用
  • com是顶级域名,xiedaimala.com是二级域名(俗称一级域名),www.xiedailala.com是三级域名(俗称二级域名),就像github.io,把子域名,用户名.github.io免费给用户使用一样,他们是不一样的,也有可能不属于同一家公司
  1. 端口:一台机器可以提供很多服务,每个服务就有一个号码,这个号码就叫端口号port
  • 一共有65535个端口(基本够用)
  • 要提供HTTP服务最好用80端口
  • 要提供HTTPS服务最好用443端口
  • 要提供FTP服务最好用21端口
  • 端口对应的服务列表
  • 0-1023号端口是留给系统用的,只有拥有了管理员权限之后才能使用,但一般不建议使用
  • 一个端口如果被占用,就只能用另一个端口
  • 总之IP和端口缺一不可,IP定位一台设备,端口定位一个设备的服务
  1. 路径:用以请求不同的页面
  • https://developer.mozilla.org/zh-CN/docs/Web/HTML
  • https://developer.mozilla.org/zh-CN/docs/Web/CSS
  • 使用Chrome开发者工具里面的Netweok面板可以看看区别
  1. 查询参数:同一页面的不同内容
  • http://www.baidu.com/s?wd=hi
  • http://www.baidu.com/s?wd=hello
  1. 锚点:定位同一内容的不同位置
  • https://developer.mozilla.org/zh-CN/docs/Web/CSS#参考书
  • '#'及后面的内容就是定位的锚点
  • 注意:#及后面的内容是属于本地的请求,不会传到服务器里面,无法在Network里面看到
  • 锚点看起来是中文,实际上是不支持中文的,可以复制出来试试看,会变成一串字符串

DNS 的作用是什么,nslookup 命令怎么用

  • DNS:Domain Name System域名系统,用来对应域名和IP
  • 当我们在浏览器里面输入一个域名,浏览器会向电信或者联通提供的DNS服务器查询域名对应的IP,然后浏览器才会向对应IP的端口发送请求,可以在开发者工具里面看到对应的端口
  • 可以用nslookup查询IP地址
nslookup baidu.com

curl命令

  • 可以用curl命令发起http请求
curl -v http://baidu.com    //返回简单版
curl -s -v -- http://baidu.com      //返回复杂版
  • url会被curl重写(比如在最后加一个/表示访问根目录),先请求DNS获得IP地址
  • 先进性TCP连接,成功后开始发送THHP请求
  • 请求内容(>后面的内容)看一下,了解一下
  • 响应内容(<后面的内容)看一下,了解一下
  • 响应结束后关闭TCP连接(看不出来)
  • TCP关闭后才是真正的结束

写在最后

  1. HTTP 的英文全称:HyperText Transfer Protocol
  2. DNS 的英文全称:Domain Name System

你可能感兴趣的:(浅析URL)