浅析URL

277 阅读2分钟

URL包含哪几个部分:

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

注意:

  • HTTPS默认端口443
  • 路径可以使用Chrome开发者工具Network面板看
  • 锚点是无法在Network面板看到的,因为锚点不会传给服务器

IP(Internet protacal)

主要约定两件事

  • 如何定位一台设备
  • 如何封装数据报文,以跟其他设备交流

特殊IP

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

端口 (port)

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

  • 要提供HTTP服务最好使用80端口
  • 要提供HTTPS服务最好使用443端口
  • 要提供FTP服务最好使用21端口
  • 一共有65535个端口(基本够用)

在哪里知道应该用什么端口(TCP/UDP端口列表)

zh.wikipedia.org/wiki/TCP/UD…

端口使用规则

  • 0到1023 (2的10次方减1)号端口是留给系统使用的
  • 你只有拥有了管理员权限后,才能使用这1024个端口
  • 其他端口可以给普通用户使用
  • 比如http-server默认使用8080端口
  • —个端口如果被占用,你就只能换一个端口

注意:IP和端口缺一不可 ! ! !

域名

域名就是对IP的别称

如何查询域名对应的IP:ping XXX(如 ping baidu.con)

知识点

  • —个域名可以对应不同IP 这个叫做均衡负载
  • —个IP可以对应不同域名 这个叫做共享主机

域名和IP通过DNS(域名系统)对应起来

流程

当你输入XXX网址

  • 你的Chrome浏览器会向电信/联通提供的DNS服务器询问XXX.com 对应什么IP(命令:nslookup XXX.com)
  • 电信/联通会回答一个IP
  • 然后Chrome才会向对应IP的80/443端口(80或443端口是服务器默认端口,可以在开发者工具看到具体的端口)发送请求
  • 请求内容是查看XXX.com的首页

域名分类

www.xiedaimala.com 和 xiedaimala.com 不是同一个域名

  • com是顶级域名
  • xiedaimala.com是二级域名(俗称一级域名)
  • www.xiedaimala.com是三级域名(俗称二级)
  • 他们是父子关系

curl命令

用curl可以发HTTP请求

  • curl -v http://baidu.com
  • curl -s -v -- https://www.baidu.com/
概念
  • url会被curl工具重写,先请求DNS获得IP
  • 先进行TCP连接,TCP连接成功后,开始发送HTTP请求
  • 请求内容看一眼
  • 响应内容看一眼
  • 响应结束后,关闭TCP连接(看不出来)
  • 真正结束