URL是什么?
- URL是指 协议 + 域名或IP + 端口号 + 路径 + 查询字符串 + 锚点。
- 举例:
HTTPS默认端口443
- 举例:
IP——Internet Protocal
- 主要约定了两件事:
- 如何定位一台设备。
- 如何封装数据报文,以跟其他设备交流。
- IP分为内网和外网
- 外网IP
- 如何获取外网IP,例如选择电信租用带宽,你想使用,需要一个路由器进行转换,此时,路由器连上电信的服务器,那么路由器就会有一个【外网IP】,比如【14.17.32.211】就是一个外网IP,这就是你在互联网中的地址。但是重启路由器的话,路由器很有可能会被重新分配一个外网IP,也就是说路由器没有一个【固定的外网IP】。
- 内网IP
- 在路由器有了外网IP后,路由器会在你家里创建一个内网,内网中的设备使用内网IP,一般内网IP的格式都是192.168.xxx.xxx。
- 一般路由器会给自己分配一个记好的内网IP,如192.168.1.1
- 路由会分配给每一个内网中的设备一个不同的内网IP,如电脑是192.168.1.2,手机是192.168.1.3,一次类推。
- 路由器的功能
- 路由器有两个IP,一个外网IP和一个内网IP
- 内网中的设备可以互相访问,但是不能直接访问外网
- 内网设备想要访问外网,就必须经过路由器中转
- 外网中的设备可以互相访问,但是无法访问你的内网
- 外网设备想要把内容送到内网,也必须通过路由器
- 也就是说,内网和外网就像两个隔绝的空间,无法互通,唯一的联通点就是路由器
- 所以路由器有时候也被叫做【网关】
- 几个特殊的IP
- 127.0.0.1表示自己
- localhost通过hosts指定为自己
- 0.0.0.0不表示任何设备
- 外网IP
端口 port
- 一台机器可以提供很多服务,每个服务一个号码,这个号码就叫端口号port
- 比如,有两个不同作用的窗口服务点,必须要到相对应的窗口才能办理业务,不然会被拒绝,可能还会挨骂。
- 一台机器可以提供不同的服务(详细使用什么端口可查询TCP/UDP端口列表 - 维基百科,自由的百科全书 (wikipedia.org)
- 要提供HTTP服务最好使用80端口
- 要提供hTTPS服务最好使用443端口
- 要提供FTP服务最好使用21端口
- 一共有65535个端口,基本够用
- 端口使用规则
- 0-1023(2的10次方减1)号端口是留给系统使用的,你只有拥有了管理员权限后,才能使用这1024个端口。
- 其他端口可以给普通用户使用,比如http-server默认使用8080端口
- 一个端口如果被占用,你就只能换一个端口 记住【IP和端口缺一不可】
域名
- 域名就是对IP的别称
- baidu.com对应IP————ping baidu.com,qq.com对应IP————ping qq.com
- 一个域名可以对应不同IP,这个叫做均衡负载,防止一台机器扛不住;一个IP可以对应不同域名,这叫做共享主机,穷开发者会这么做
DNS————域名和IP就是通过DNS对应起来的
- 过程
- 当你输入一个网址后,你的浏览器会向电信/联通提供的DNS服务器询问网址对应什么IP,电信/联通会回答一个IP,然后浏览器会向对应IP的80/443端口发送请求,请求内容时查看网址的首页。
- 为什么是80或443端口,因为服务器默认用80提供http服务,用443提供https服务,可以在开发者工具里看到具体的端口
- 补充
- 【com】是顶级域名,【baidu.com】是二级域名(俗称一级域名),【www.baidu.com】 是三级域名(俗称二级),后两者是父子关系。github.io把子域名xxx.github.io免费给你使用,所以www.baidu.com 和baidu.com可以不是同一家公司,也可以是。www是多余的。
通过url访问页面
- 如何请求不同的页面
- 通过路径
- developer.mozilla.org/zh-CN/docs/…
- developer.mozilla.org/zh-CN/docs/…
- 可以使用Chrome开发者工具Network面板查看区别
- 通过路径
- 同一个页面,不同内容
- 同一个内容,不同位置
- 通过锚点
- developer.mozilla.org/zh-CN/docs/…
- developer.mozilla.org/zh-CN/docs/…
- 注意,锚点看起来有中文,实际不支持中文,锚点是无法在Network面板看到的,因为锚点不会传给服务器。
- 通过锚点
HTTP(协议)————基于TCP和IP两个协议
- 可以用curl命令发HTTP请求
- curl -v baidu.com
- curl -s -v -- www.baidu.com
- 实现过程
-
url会被curl工具重写,先请求DNS获得IP,先进行TCP连接,TCP连接成功后,开始发送HTTP请求,之后会得到响应,响应结束后,关闭TCP连接(看不出来),真正结束。
-