为了方便阅读,还是以问答的形式来写~
URL 包含哪几部分,每部分分别有什么作用
URL是什么?
答:Uniform Resource Locator(统一资源定位系统)
URL主要包括的内容?
答:URL=协议+域名或IP+端口号+路径+查询字符串+锚点
- 注意:端口一般不会显示:HTTP 默认80;HTTPS 默认443
IP是什么?
答:Internet Protocol(网际互连协议)
IP 的作用是什么
答: 主要约定两件事:
- 如何定位一台设备
- 如何分装数据报文,以跟其他设备交流
IP在外网和内网
答:
如何查询IP地址(为啥警察可以抓到网络诈骗)
答:
- 终端输入 ipconfig (如果是连接路由器则不会显示外网地址)
- 网站 IP138.com 可查询到本设备外网 IP
特殊的IP地址:
答:
- 127.0.0.1 表示自己
- localhost 通过 hosts 指定为自己
- 0.0.0.0 不表示任何设备
在哪里找到 hosts
答:在 Windows 系统中,hosts 位于 C:\Windows\System32\drivers\etc\hosts 。在 macOS / Linux系统中,hosts 位于 /etc/hosts
如何用 hosts 指定自己
答:
- hosts 一般需要用管理员权限才能编辑
- hosts 文件中以 # 开头的表示注释
- hosts 中可以添加一行 127.0.0.1 frank,让 frank 成为 127.0.0.1 的别称(frank 可以换成任何你想换的词)
- 那么在浏览器中输入frank:8080/index.html ,即可打开本地index.html
端口
答:一台机器可以提供很多服务,每个服务一个号码,这个号码就叫端口号port
不同的服务对应的port
答:
- HTTP服务推荐使用80端口
- HTTPS服务推荐使用443端口
- FTP服务推荐使用21端口
- 一台设备一共有65535个端口(目前基本够用)
- 我怎么知道该用什么端口 维基百科
端口的使用规则
答:
- 0~1023(即210-1)号端口是给系统用的(拥有管理员权限才能使用这些端口,建议不要使用)
- http-server 默认使用8080端口 (如终端输入:hs -c-1 -p 1234 可设置为使用1234号端口而不是默认的8080)
- 一个端口被占用就只能换一个端口
- 总而言之:IP 和端口缺一不可
域名
答:域名就是对 IP 的别称
如何查看域名
答:
- 查域名对应的 IP(指本机当前访问的域名的 IP ,只是其中一个 IP)
- ping+域名(如:ping baidu.com)
- 一个域名对应不同的 IP --均衡负载--防止一台机器扛不住
- 多个域名对应一个 IP --共享主机--穷开发者的做法
域名和IP是怎么对应起来的(通过DNS Domain Name System(域名系统))
答:
- 当你输入一个域名如:baidu.com,浏览器会向电信/联通等提供的 DNS 服务器询问 baidu.com 对应什么 IP
- 然后浏览器会向对应 IP 的 80/443 端口发送请求
- 请求的内容是百度的首页
nslookup 命令怎么用
答:
这时可以打开开发者工具>Network 查看访问网站的全过程
为什么是80或者443端口
答:
- 服务器默认了这两个端口
- Https的默认端口是443
按照级别分类域名
答:
- com是顶级域名
- xiedaimala.com是二级域名(俗称一级域名)
- www.xiedaimala.com是三级域名(俗称二级域名)
- 二级域名与三级域名是父子关系
- 所以xiedaimala.com和www.xiedaimala.com不是同一个域名,所以实际上没啥关系
有个人就是靠倒卖域名变成了百万富翁,这个人是谁?
如何请求不同的页面(使用路径可做到)
答:
- developer.mozilla.org/zh-CN/docs/…
- developer.mozilla.org/zh-CN/docs/…
- Network 面板可以看到只有最后的路径 改变了
- 路径可以没有后缀
如何请求同一页面不同内容(查询参数可做到)
答:
- www.baidu.com/s?wd=hi
- www.baidu.com/s?wd=hello
- /s--是指百度的搜索(单独 /--指路径为根目录,)
- ?wd=xx--查询参数(wd是指 word)
同一内容不同位置(用锚点实现)
答: developer.mozilla.org/zh-CN/docs/…
- 锚点看起来是有中文的,实际是不支持中文的,如上,# 后面原本是参考书三个字,复制过来是一串字符
- 锚点无法在 Network 面板看到,因为锚点不会传给服务器
工具:curl命令行
-
curl -v baidu.com
-
curl -s -v -- www.baidu.com
- url会被curl工具重写,先请求DNS获得IP
- 先进行TCP连接,TCP连接成功后,开始发送HTTP请求
- 请求内容+响应内容
- 响应结束关闭TCP连接
- 结束