内容提要:
- URL 包含哪几部分,每部分分别有什么作用
- DNS 的作用是什么,nslookup 命令怎么用
- IP 的作用是什么,ping 命令怎么用
- 域名是什么,分别哪几类域名
URL(Uniform Resource Locator)的组成部分
传输协议
+ 域名或IP + 端口号 +路径
+查询字符串
+ 锚点
eg.
https://
www.baidu.com/s
wd=hello&rsv_spt=1#5
==传输协议== + 域名或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 的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题
|
|
|
|
IP的作用,ping 命令用法
- 一是定位一台设备
- 二是封装数据报文跟其他设备交流
ping
命令是常用的网络命令,它通常用来测试与目标主机的连通性。
即:
- 标识主机,具体地说,标识其网络接口,并且提供主机在网络中的位置,就此提供创建到达该主机的路径的能力。
- 每个 IP 数据包的标头包含了发送主机的 IP 地址和目的主机的 IP 地址。
|
|
用Ctrl + c
中断
域名(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。
但实际上,某些域名可能具有其他限制;也没有只有一个字符的域名后缀。
内容提要卐,后面是视频记录流水账
网络和 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
|
|
|
|
查看ip38.com
路由器的功能
- 路由器有两个IP,内外各一
- 内网中的设备可互相访问,但不可直接访问外网
- 内网设备通过路由器中转,访问外网
- 外网设备无法访问你的内网,不管直接间接
- 外网把内容推送到内网,必须通过路由
- 内外隔绝,路由是唯一联通点,即网关
几个特殊的IP
127.0.0.1
表示自己localhost
通过hosts指定为自己0.0.0.0
不表示任何设备,后端用- localhost是个域名,不是地址,它可以被配置为任意的 IP 地址,不过通常情况下都指向 127.0.0.1(ipv4)和 ::1
eg.
|
|
改为:
|
|
就能在地址栏用xmas
访问127.0.0.1
问:hosts 文件在哪?
答: 在 Windows 系统中,hosts 位于 C:\Windows\System32\drivers\etc\hosts
。
在 macOS / Linux系统中,hosts 位于 /etc/hosts
问:在window或mac上,当我们访问localhost
时,究竟在访问哪里?
修改host文件以及localhost与127.0.0.1的区别
localhost、127.0.0.1 和 本机IP 三者的区别?
一些概念
(1)127.0.0.1在Linux也好,Windows也好,都会有这个循回地址的。
(2)在IP地址的规定中,第一部分是1~126为A类地址,128~191为B类地址,那么中间留的127.0.0.1被称为本地回环地址,主要作用有两个:一是测试本机的网络配置,能PING通127.0.0.1说明本机的网卡和IP协议安装都没有问题;另一个作用是某些SERVER/CLIENT的应用程序在运行时需调用服务器上的资源,一般要指定SERVER的IP地址,但当该程序要在同一台机器上运行而没有别的SERVER时就可以把SERVER的资源装在本机,SERVER的IP地址设为127.0.0.1也同样可以运行。
(3)这个地址也是给本机loop back接口所预留的IP地址,它是为了让上层应用联系本机用的,如果没有这个loop back接口通常上层应用无法与自己联系,因为它仍然会把数据往IP层发送,数据到了IP层如果发现目的地是自己,则回被回环驱动程序送回。因此通过这个地址也可以测试TCP/IP的安装是否成功,就是驱动,网卡 都是否正常,但无法测试出具体TCP/IP的配置是否正确,也无法测试出网卡是否正常,因为数据在离开IP层之前就已经被送回去了。
端口
一台机子可提供很多服务,每个服务一个号码,即端口号
port
不同的服务
- 提供
HTTP
服务,最好使用80
端口 - 提供
HTTPS
服务,最好443
端口 - 一共有65535个端口,
FTP
是21端口 - 该用什么端口:端口对应的服务列表wiki
其他使用规则
- 0到1023(2的10次方减1,计1024个)号端口,留给系统使用,自己使用须取得管理权限
http-server
默认使用8080
端口- 一个端口被占用时,只能换另一个
IP是用来定位一个设备的
端口是用来定位一个设备的服务
有了IP和端口,就可以定位一个设备提供的服务
比如百度的设备提供网页服务;腾讯的设备提供聊天服务;淘宝的设备提供支付服务等
这些服务都可以通过IP和端口唯一确定
总之,IP和端口缺一不可
域名、路径、查询参数、锚点
qq.com
,t.tt
域名:对IP的别称
|
|
baidu.com
对应ping baidu.com
,qq.com
对应ping qq.com
知识点
- 一个域名可以对应不同IP,即均衡负载,分流,防止一台机子扛不住,或者恶意的
DDos
攻击,网站优化策略 - 一个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
|
|
type
可以是:
- A 地址记录
- AAAA 地址记录(IPv6)
- CNAME 别名记录
- HINFO 硬件配置记录,包括 CPU、操作系统信息 等
询问域名,域名ns
,寻找lookup
|
|
默认自动设置
电信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 -s -v -- http://baidu.com
-v
:verbose 啰嗦模式
用Chrome(地址栏输入URL),得到网页,开始解析页面
而用curl命令,只得到网页,不解析页面
理解以下概念
url
会被curl
工具重写,先请求DNS获得IP- 先进行TCP连接,TCP连接成功后,开始发送HTTP请求
- 请求内容看一眼
- 相应内容看一眼
- 响应结束后,关闭TCP连接(看不出来)
- 真正结束
> curl baidu.com
< 以下是返回的内容
|
|
查看
curl
发送的五行请求
> curl -v http://baidu.com
|
|
启用baidu.com
,请重新访问http://www.baidu.com/
,对应访问的IP改变,TCP
启动,连接到80端口,之后发送五行内容,得到
|
|
只有TCP结束了,才真正结束
HTTP
规定请求的格式是什么,响应式格式是什么
HTTP规定如何写五行请求以及如何返回响应
参考文章
相关文章
- 无
- 作者: Joel
- 文章链接:
- 版权声明
- 非自由转载-非商用-非衍生-保持署名
- 河 掘 思 知 简