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端口列表)
端口使用规则
- 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连接(看不出来)
- 真正结束