什么是URL
时间:2023-01-31 14:16:01 | 来源:建站知识
时间:2023-01-31 14:16:01 来源:建站知识
先从ip说起,什么事ip:
internet protocal
主要约定了两件事
- 如何定位一台设备
- 如何封装数据报文,以跟其他设备交流具体内容我们不关心
只要你在互联网中
你就有至少一个独特的ip
ip分为内网和外网
如何获取外网ip
- 你从电信租用宽带,一年一千多
- 你买了一个路由器,然后用电脑和手机分别连接路由器广播出来的无线WIFI。
- 只要路由器脸上电信的服务器,那么路由器就会有一个【外网IP】,比如[14.17.32.211]就是一个外网IP。这就是你在互联网中的地址。
- 但是如果你重启路由器,那么你很有可能被重新分配一个外网IP,也就是说你的路由器没有固定的外网IP
- 但是有个问题,你的路由器的外网IP如果是14.17.32.211,那么你的手机和电脑的IP又是什么了?答案就是内网IP
- 路由器会在你家里创建一个内容,内网中的设备使用内网IP,一般来说这个IP格式都是http://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不表示任何设备
端口 port
一个比喻
- 麦当劳提供两个窗口,一号快餐,二号咖啡
- 你去快餐窗口点咖啡会被拒绝,让你去另一个窗口
- 你去咖啡窗口点快餐一样的结果
一个机器可以提供不同的服务
- 要提供HTTP服务最好使用80端口
- 要提供HTTPS服务最好使用443端口
- 要提供FTP服务最好使用21端口
- 一共有65535个端口(基本够用)
我怎么知道应该用什么端口呢?
维基百科一个一个列出来
端口使用还有什么规则
规则
- 0到1023(2的10次方减1)号端口是留给系统用的
- 你只拥有管理员权限后,才能使用1024端口
- 其他端口可以给普通用户使用
- 比如http-server默认使用8080端口
- 一个端口如果别占用,你就只能换一个端口
域名就是对IP的别称
http://baidu.com对应什么IP
ping
http://baidu.comhttp://qq.com对应什么IP
ping
http://qq.com知识点
- 一个域名可以对应不同的IP
- 这个叫做均衡负载,防止一台机器抗不住
- 一个IP可以对应不同域名
- 这个叫共享主机,穷开发者会这么做
通过DNS把域名和IP对应起来 DNS(域名服务)
当你输入xiedaimala,com
过程- 你的Chrome刘览器会户电信/联通提供的DNS服务器询问http://xiedaimnala.com对应什么IP
- 电信/联通会回答 一个IP(具体过程很复杂,不研究)
- 然后Chrome才会想对应IP的80/443端口发送请求
- 请求内容是查看http://xiedaimala.com的首页
为什么是80或443端口
- 服务器默认用80提供http服务
- 服务器默认用443提供https服务
- 你可以在开发者工具看到具体的端口
题外话
WWW
- www.xiedaimala.com 和 xiedaimala.com
- 是同一个域名吗?不是
他们是什么关系
- com 是顶级域名
- 饥人谷官网 是二级域名(俗称一级域名)
- www.xiedaimala.com 是三级域名(俗称二级)
- 他们是父子关系
- github.io 把子域名 xxx.github.io免费给你使用
- 所以你应该知道 www.xiedaimala.com 和饥人谷官网 可以不是同一家公司,也可以是
- www是多余的吗?是的,非常多余。
如何请求不同的页面
•路径可以做到
- HTML(超文本标记语言) | MDN
- CSS(层叠样式表) | MDN
•工具
- 使用 Chrome 开发者工具 Network 面板看看区别HTML(超文本标记语言) | MDN使用 Chrome 开发者工具 Network 面板看看区别
同一个页面,不同内容
•查询参数可以做到
- www.baidu.com/s?wd=hi
- hello_百度搜索
同一个内容,不同位置
•锚点可以做到
- https://developer.mozilla.org/zhCN/docs/Web/CSS#参考书
- https://developer.mozilla.ore/zhCN/docs/Web/CSS#教程
•注意
- 锚点看起来有中文,实际不支持中文
- #参考书会变成 #%E5%8F%82%E8%80%83%E4%B9%A6
- 锚点是无法在 Network 面板看到的因为锚点不会传给服务器
URL (统一资源定位符)
协议+域名或IP+端口号+路径+查询字符串+锚点
curl命令
• 用curl可以发 HTTP 请求
- curl -v http://baidu.com
- curl-s-v -- https://www.baidu.com
• 理解以下概念
- url会被 curl 工具重写,先请求 DNS 获得 IP
- 先进行 TCP 连接,TCP 连接成功后,开始发送 HTTP请求
- 请求内容看一眼
- 响应内容看一眼
- 响应结束后,关闭TCP连接(看不出来)
- 真正结束
• HTTP
规定请求的格式是什么,响应的格式是什么