URL(统一资源定位符 Uniform Resource Locator)
包括:协议+域名或IP+端口号+路径+查询字符串+锚点
一、协议 HTTP
基于TCP和IP两个协议 curl命令
用curl可以发HTTP请求
- curl -v http://baidu.com
- curl -s -v https://www.baidu.com
注:
- url会被curl工具重写,先请求DNS获得IP
- 先进行TCP链接,TCP连接成功后,发送HTTP请求
- 请求、响应结束后,关闭TCP连接(看不出来),真正结束。
具体内容,后续详细介绍
二、域名
1、IP(Internet Protocol)网际互联协议
IP主要约定两件事:
- 如何定位一台设备
- 如何封装数据报文,以跟其他设备交流
1、外网IP和内网IP
- 租用宽带,连接路由器,就会有一个外网IP(重启路由器,可能会重新分配)
- 路由器创建内网,内网中的设备使用内网IP,一般格式是192.168.X.X
2、路由器
- 路由器有一个内网IP、一个外网IP
- 内网中的设备可以互相访问,但不能直接访问外网,需经过路由器中转
- 外网中的设备可以互相访问,但无法访问你的内网,访问也必须结果路由器
- 内网外网互相隔绝,唯一联通的点就是路由器,也被叫做网关
特殊的IP:
- 127.0.0.1 表示自己
- localhost通过hosts指定为自己(可以编辑hosts自定义)
- 0.0.0.0不表示任何设备
2、域名
- 域名就是对IP的别称
ping命令ping baidu.com
(对应百度的IP)
一个域名可以对应不同的IP,均衡负载
一个IP可以对应不同域名,共享主机 - 域名和IP是如何对应的呢? DNS(Domain Name System)
过程:
- 当你输入域名,浏览器会向网络运营商的DNS服务器询问对应的IP(nslookup命令)
nslookup命令nslookup baidu.com
得到百度的IP地址 - 浏览器向对应的IP的 80/443端口 发送请求
- 请求内容是查看域名首页。
服务器默认80端口提供HTTP服务,443端口提供https服务(开发者工具可以看到具体的端口)
- 域名级别:
顶级域名:.com
二级域名:http://xxx.com 俗称一级域名
三级域名:http://www.xxx.com 俗称二级域名 (是http://xxx.com的子域名) - 请求不同的页面,使用路径https://developer.mozilla.org/zh-CN/docs/Web/HTMLhttps://developer.mozilla.org/zh-CN/docs/Web/CSS
- 同一个页面不同内容,使用查询参数
www.baidu.com/s?wd=hi (&pn=10 可以确定页数)
www.baidu.com/s?wd=hello - 同一个内容,不同位置 使用锚点https://developer.mozilla.org/zh-CN/docs/Web/CSS#参考书https://developer.mozilla.org/zh-CN/docs/Web/CSS#教程
锚点看起来有中文,其实不支持中文,上述链接会变成https://developer.mozilla.org/zh-CN/docs/Web/CSS#%E5%8F%82%E8%80%83%E4%B9%A6https://developer.mozilla.org/zh-CN/docs/Web/CSS#%E6%95%99%E7%A8%8B
锚点无法在Network面板看到,因为锚点不会传给服务器
三、端口 Port
一台机器可以提供不同服务
- HTTP服务最好使用80端口
- https服务使用443端口
- ftp服务使用21端口
- 一共65535个端口
端口使用规则:
- 0~1023号端口是留给系统使用的端口,只有拥有管理员权限才能使用
- 其他端口普通用户可以使用,如http-server默认使用8080端口(http-server -c -1 -p 1234 把端口改为1234)
- 一个端口如果被占用,只能换一个端口
端口和IP缺一不可
四、URL
![35a89fcf60d033aa50aa0dc79dba04a4.png](https://i-blog.csdnimg.cn/blog_migrate/87e69037a9bbe84135b02db581efb184.jpeg)
协议+域名或IP+端口号+路径+查询字符串+锚点
https端口为默认为443;