浅析URL——从输入一个网址到网页出现这中间到底经历了什么

简介

我们常在浏览器中输入的一个个网址通常会以这种形式存在:www.baidu.com

当我们发送给别人时如果从地址栏直接复制的则会是这种:https://www.baidu,com或者是http://www.baidu.com这种网址就是一个完整的URL。当我们进入浏览时会出现更长的网址形如https://www.baidu.com/s?wd=2demo.top#1。下面是一个常见URL的结构

主要分为:

协议:http、https

域名:一般的域名指的是baidu.com ,www.baidu.com 是baidu.com的二级域名,baidu.com是一级域名,com是域名后缀。一般主流网站会优先使用www的二级域名,或者直接使用一级域名作为自己的主域名,其他服务使用其他的二级域名或者其他域名。

路径:

网页实际上就是一个个的文件的聚合,网站上的路径类似于我们电脑文件系统的一个个文件夹,一个路径就是一个文件夹,路径中的网页就类似于文件夹中的一个个文件。

查询参数:

查询参数一般搜索的时候会用上,比如上面的示例我查询的是2demo.top这个关键词,百度会返回关于这个关键词的结果

锚点:

锚点其实一般人都不会去特别注意以及使用,常见的用法就是搜索结果的第几个第几个,以及一个文章中的第几个标题,锚点可以是排序数字也可以是文字。可以快速帮助读者定位到指定的地方。

IP以及域名

IP(Internet Protocol)中文名称为网际协议,IP是TCP/IP协议族中网络层的主要协议,任务仅仅是根据源主机和目的主机的地址来进行数据的传输。IP定义了寻址方法以及数据报的封装结构。目前世界上广泛使用的版本是第一个架构主要版本IPv4,由于IPv4设计当初的局限性,目前世界上IPv4的地址逐渐枯竭,所以目前世界上正在积极部署IPv6,尽管目前效果暂时不太明显。

IPv4Internet Protocol version 4)设计当初采用了32位(4字节)地址因此地址空间中只有2的32次方个地址(4,294,967,296约43亿)而其中的一些地址是为特殊用途所保留的,比如专用网络(1800万个)和多播地址(2.7亿个)。IPv4的一般表现形式为点分十进制形如192.168.001.001(192.168.1.1)是专用网络。比如百度的IP地址为 39.156.69.79是公网地址

每一个网站都是靠IP地址来进行访问的,在互联网发明之初网站是直接通过IP访问的,每个设备对应着一个IP地址,用户直接访问IP就可以浏览网页,但是由于IP地址不便记忆所以就发明出了域名,域名通过解析到IP地址之后就可以直接在浏览器输入域名来访问该IP下机器上部署的网页。查看一个域名所对应的IP可以通过ping功能进行查询。

ping:一种用来测试数据包能否透过IP协议到达特定主机的工具。运作原理为向目标主机传出一个ICMP的请求回显数据包并等待接收回显回应数据包。程序会按照响应时间以及成功响应的次数来估算丢失数据包1率(丢包率)和数据包往返时间(网络时延)。在Windows系统下可以按win+r打开运行输入CMD打开CMD工具再输入ping 域名就可以测试你和目标网站的连通性。

以百度为例在计算机发出ping指令后会根据DNS解析出来的IP(220.181.38.148)进行发送32字节的数据包,四次数据包的网络时延(延时)均为26ms,四次全部接受成功丢包率则为0。ping值的高低可以初步的展现用户与网站的连通性(ping值低不能代表网站的速度一定会快,还要受双方带宽、内容多寡、网页复杂程度等影响)

Linux与MacOS则可以通过终端(命令行)进行该操作。

将域名与IP地址相互映射的的服务就是DNS。

DNS(Domain Name System)域名系统:它是一个能将域名和IP地址相互映射的分布式数据库。DNS服务一般使用53端口(TCP+UDP)以查询2demo.top为例

客户端发送查询报文query www.2demo.top至DNS服务器,DNS服务器先检查自身缓存,如果存在记录就直接返回结果。如果记录老化或者不存在则进行以下几个步骤

1、DNS服务器向根域名发送查询报文query www.2demo.top,根域名服务器返回顶级域.top的权威域名服务器地址。

2、DNS服务器向.top域的权威域名服务器发送查询报文query www.2demo.top,得到二级域.2demo.top的权威域名服务器地址

3、DNS服务器向.2demo.top的权威域名服务器地址发送查询报文query www.2demo.top,得到主机www的A记录,存入自身缓存并返回给客户端。

那么如何查询DNS记录呢?这就要用到nslookup命令了

nslookup

语法:nslookup domain(dns-server)

示例1:nslookup baidu.com

183.60.83.19就是百度的DNS服务器,39.156.69.79以及220.181.38.148则是百度的域名所对应的IP

示例2:nslookup -qt=type domain(dns-server)

nslookup -qt=CNAME baidu.com

这会查询一个域名的Cname解析详情

还有其他命令

A 地址记录(直接查询默认类型)

AAAA 地址记录

AFSDB Andrew文件系统数据库服务器记录

ATMA ATM地址记录

CNAME 别名记录

HINFO 硬件配置记录,包括CPU、操作系统信息

ISDN 域名对应的ISDN号码

MB 存放指定邮箱的服务器

MG 邮件组记录

MINFO 邮件组和邮箱的信息记录

MR 改名的邮箱记录

MX 邮件服务器记录

NS 名字服务器记录

PTR 反向记录

RP 负责人记录

RT 路由穿透记录

SRV TCP服务器信息记录

TXT 域名对应的文本信息

查询更为具体的信息:

nslookup–d[其他参数]domain[dns-server]

示例:nslookup -d baidu.com

服务器知道用户的IP地址之后就会根据网址返回对应的网页内容。浏览器接受到数据就会开始渲染网页,最终呈现出我们面前的网站。

点击此处了解浏览器是如何渲染网页的

前端

适合小白的CSS入门知识(动画)

2020-11-27 0:03:48

前端

JavaScript发展史

2020-12-4 21:03:53

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索