内容提要:
- URL 包含哪几部分,每部分分别有什么作用
- DNS 的作用是什么,nslookup 命令怎么用
- IP 的作用是什么,ping 命令怎么用
- 域名是什么,分别哪几类域名
URL的组成部分
传输协议
+ 域名或IP + 端口号 +路径
+查询字符串
+ 锚点
eg.
https://
www.baidu.com/s
wd=hello&rsv_spt=1#5
- 传输协议( scheme: [protocal] ):
http
、https
、ftp
等 - 域名( [//authority] Domain Name ):
www.baidu.com
- 端口( :Port ):通常省略,
:80
、:443
、:8080
等(http 大部分默认80, https默认443)
[//authority] = [userinfo@]host[:port]
- 路径( Path to the file):
/s
- 查询参数([?query] Parameters ):
wd=hello&rsv_spt=1
或者?key1=value1&key2=value2
- 锚点( [#fragment] Anchor ):
#5
另一个常见的 URL(URI) 的例子:
https://zh.wikipedia.org/w/index.php?title=Special:随机页面#5
-
https
:协议 -
zh.wikipedia.org
:域名 -
/w/index.php
:路径(不同的页面) -
?title=Special
:随机页面:查询参数(相同页面,不同内容) -
#5
:锚点(相同页面,相同内容,不同位置)
其中若不写端口号,则表示使用
https 对应的默认端口号 443
localhost:8080
DNS(Domain Name System):域名系统
作用:根据域名查出IP地址
即:将域名解析为IP 地址
nslookup可查询IP(DNS)地址
直接使用可以查询到域名的 A 记录
nslookup 命令用于查询 DNS 的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题
# nslookup + 域名
nslookup domain [dns-server]
nslookup xmasuhai.xyz
IP的作用,ping 命令用法
- 一是定位一台设备
- 二是封装数据报文跟其他设备交流
ping
命令是常用的网络命令,它通常用来测试与目标主机的连通性。
即:
- 标识主机,具体地说,标识其网络接口,并且提供主机在网络中的位置,就此提供创建到达该主机的路径的能力。
- 每个 IP 数据包的标头包含了发送主机的 IP 地址和目的主机的 IP 地址。
# ping [参数][主机名或ip地址]
ping baidu.com
域名(Domain Name)
是互联网的一项服务,主要用于域名与 IP 地址的相互转换
如果要访问一个地址(使用域名),都要先通过DNS查询域名对应的IP地址,才能进行访问
域名分类
域名分顶级域名,二级域名和三级域名
比如对于 www.baidu.com
- 顶级域名:
com
- 二级域名:
baidu.com
- 三级域名:
www.baidu.com
域名的第一级是顶级域,它包括通用顶级域,例如.com、.net 和.org;
以及国家和地区顶级域,例如.us、.cn 和.tk。
完整域名的所有字符加起来不得超过 253 个 ASCII 字符的总长度。
当每一级都使用单个字符时,限制为 127 个级别:127 个字符加上 126 个点的总长度为 253。
但实际上,某些域名可能具有其他限制;也没有只有一个字符的域名后缀。
内容提要卐,后面是视频记录流水账
问:hosts 文件在哪?
答: 在 Windows 系统中,hosts 位于 C:\Windows\System32\drivers\etc\hosts
。
在 macOS / Linux系统中,hosts 位于 /etc/hosts
网络和 IP
李爵士的发明
WWW=URL+HTTP+HTML
HyperText Transfer Protocol
协议
IP: Internet Protocol
IP(Internet Protocol)主要约定
1.如何定位一台设备
2.如何封装数据报文(用来和其他设备交流)
互联网(not WWW),至少一个独特的IP
IP分内网和外网
设备 路由器 电信DNS服务器 其他用户
获取外网IP 买 | 蹭
- 首先,你需要租用宽带(电信或者联通)
- 其次,你需要购买一个路由器(有时候也被叫做“网关”)
- 当路由器连接上电信或者联通的服务器后,路由器就会获得一个外网的IP,所有通过路由器连接的设备,他们的外网IP都是一致的。
- 注意:如果当你重启路由器之后,可能会被分配一个新的外网IP,也就是说,路由器是没有一个固定的外网IP,除非高价买,企业级需要
内网IP
- 路由器创建内网,内网中的设备使用内网IP,格式
192.168.xxx.xxx
、192.168.1.1
等- 路由再给每一个内网中的设备(PC、手机)分配一个不同的内网IP
- 内网的所有设备都有一个相同的外网IP
- 路由器会为每一个内网中的设备分配一个不同的内网IP
内网IP固定
查看IP
ping xxx.com
ipconfig
查看ip38.com
路由器的功能
- 路由器有两个IP,内外各一
- 内网中的设备可互相访问,但不可直接访问外网
- 内网设备通过路由器中转,访问外网
- 外网设备无法访问你的内网,不管直接间接
- 外网把内容推送到内网,必须通过路由
- 内外隔绝,路由是唯一联通点,即网关
几个特殊的IP
-
127.0.0.1
表示自己 -
localhost
通过hosts指定为自己 -
0.0.0.0
不表示任何设备,后端用
端口
一台机子可提供很多服务,每个服务一个号码,即端口号
port
不同的服务
- 提供
HTTP
服务,最好使用80
端口 - 提供
HTTPS
服务,最好443
端口 - 一共有65535个端口,
FTP
是21端口 - 该用什么端口:端口对应的服务列表wiki
其他使用规则
- 0到1023(2的10次方减1,计1024个)号端口,留给系统使用,自己使用须取得管理权限
-
http-server
默认使用8080
端口 - 一个端口被占用时,只能换另一个
总之,IP和端口缺一不可
域名、路径、查询参数、锚点
qq.com
,t.tt
域名:对IP的别称
ping baidu.com
#将得到四个回复(win),mac 需ctrl+c中断
baidu.com
对应ping baidu.com
,qq.com
对应ping qq.com
知识点
- 一个域名可以对应不同IP,即均衡负载,分流,防止一台机子扛不住,或者恶意的
D-Dos
攻击,网站优化策略 - 一个IP可对应不同域名,即穷开发者的共享主机
域名和IP,怎么对应起来?
- 通过DNS
当你输入xiedaimala.com
Chrome开发者工具中,Network
面板,xiedaimala.com
点击,Headers里,请求根目录https://xiedaimala.com/
得到响应Response 一串HTML代码,请求CSS,请求图片,请求js等
过程
客户端向DNS服务器(DNS服务器有自己的IP地址)发送域名查询请求
DNS服务器告知客户机Web服务器的IP地址
- 提供DNS的服务器的服务商:电信或联通等
- 浏览器向提供DNS的服务器询问
xiedaimala.com
对应什么IP - 服务器回答一个IP(具体过程三次握手、四次握手,面试必问)
- 请求内容是查看这个网址的网页
eg.xiedaimala.com
的首页index.html
why 80
或443
端口
- 服务器默认用
80
提供http
服务 - 服务器默认用
443
提供https
服务 - 在开发者工具查看具体端口
- 不需要写在地址栏里,写了也帮你消掉
nslookup
nslookup -qt=[type] domain [dns-server]
type
可以是:
- A 地址记录
- AAAA 地址记录(IPv6)
- CNAME 别名记录
- HINFO 硬件配置记录,包括 CPU、操作系统信息
等
询问域名,域名ns
,寻找lookup
nslookup baidu.com
默认自动设置
电信DNS
114.114.114.114
备用
114.114.115.115
题外话
www
- A:
www.xiedaimala.com
和B:xiedaimala.com
不是同一个域名 -
com
(没有点)是顶级域名 -
xiedaimala.com
是二级域名(俗称一级域名) -
www.xiedaimala.com
是三级域名(俗称二级) - 祖父子关系
-
github.io
把子域名xxx.github.io
免费给你使用 - A和B可以不是同一家公司
- www是多余的,历史残留,脱x子放*
如何请求不同的页面
用路径
工具
使用Chrome开发者工具Network面板查看区别
同一个页面,不同内容
用查询参数:https://xxx.com/s?wd=hello
同一个内容(页面),不同位置
用锚点
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%A6
- 锚点不会传给服务器,所以是无法在
Network
面板里看到的
URL
统一资源定位符(Uniform Resource Locator),简称URL,是因特网上标准的资源的地址(Address)
Every HTTP URL conforms to the syntax of a generic URI.
每个有效的 URI 都指向一个独特的资源。这个资源可以是一个 HTML 页面,一个 CSS 文档,一幅图像、视频、邮件、PDF等
The URI generic syntax consists of a hierarchical sequence of five components
URI = scheme:[//authority]path[?query][#fragment]
-authority = [userinfo@]host[:port]
组成
传输协议
+ 域名或IP + 端口号 +路径
+查询字符串
+ 锚点
eg.
https://
www.baidu.com/s
wd=hello&rsv_spt=1#5
**www.baidu.com**
是域名。 表明正在请求哪个 Web 服务器。或者,可以直接使用 IP address, 但因为不便,所以不常使用。就算没写,也应知道端口,
HTTPS
默认端口443
,通常省略
/path/to/index.html
是网络服务器上资源的路径,路径表示访问哪个网页
ftp://
是文件传输协议,不属于www
,本地或局域网
wd=hello&rsv_spt=1
或?key1=value1&key2=value2
是提供给网络服务器的额外参数。 这些参数是用 & 符号分隔的键/值对列表。
wd=hello&rsv_spt=1
:查询字符串
表示页面的展示内容,第几部分,第几章,第几页,或者查询关键词在返回资源之前,Web服务器可以使用这些参数来执行额外的操作。
#Anchor
或#SomewhereInTheDocument
是资源本身的另一部分的锚点。锚点表示资源中的一种“书签”,给浏览器显示位于该“加书签”位置的内容的方向。
例如,
在 HTML 文档上,浏览器将滚动到定义锚点的位置在视频或音频文档上,浏览器将尝试转到锚代表的时间
#后面的部分(也称为片段标识符)[fragment]从来没有发送到请求的服务器
锚点会被浏览器‘吃掉’,锚点只和浏览器有关,没必要发送给服务器
服务器无法接收
#
之后的内容,参数,不想被扣年终bonus的记住
HTTP协议
基于TCP
和IP
两个协议:也称TCP/IP
curl 命令
用curl
可以发HTTP请求
curl https://xiedaimala.com
curl -v http://baidu.com
curl -v -- http://baidu.com
-v
:verbose 啰嗦模式
理解以下概念
-
url
会被curl
工具重写,先请求DNS获得IP - 先进行TCP连接,TCP连接成功后,开始发送HTTP请求
- 请求内容看一眼
- 相应内容看一眼
- 响应结束后,关闭TCP连接(看不出来)
- 真正结束
规定请求的格式是什么,响应式格式是什么
·未完待续·
参考文章
相关文章
- 无