服务器 地址 域名 ip 到底是啥关系?从输入url地址到客户端见到网页的大致过程

写这篇文章的起源是这样的,我做了一个前端静态网页,没有后台也没连接数据库;发了一篇博客记录做网页的过程,有人问我要网页的链接,我就突然想到要把网页挂到网上大家都可以看这样会提高我做前端的兴趣吧。组内有个服务器,但是由于我是win10的系统,在安装注册机的时候出了问题,最后也没成功,我只知道按着那个流程来可以实现把网站挂上去的功能,但是却不知道为啥,一直对ip地址,服务器,域名各种概念很模糊,也不知道他们之间的关系和我们访问网页的正常流程,然后我就开始看各种百度百科看我看不懂的书和博客,因为我们还没开设计算机网络的课程,我理解起这些词语和他们之间的关系起来实在是太不容易了,这些内容连接到最底层物理层又太复杂了些,我的初衷就是了解一下大致过程对我自己琢磨把网页挂到网上或许会有帮助,就做了一点记录,分几个问题来讲述(下学期一定报计算机网络的三级考试 hhhhh):

地址(url)的结构是什么?

地址(url)以百度为例  http://www.baidu.com/s?ie=uf8mod%...

http为请求协议,也称为超文本传输协议;有些网站的url是用https开头,是http+ssl(安全套接字层),就是说比http更安全,具体过程就是传输前先加密传输后再解密来获取内容;

://是固定格式

 'www.baidu.com '这一部分就是域名(host),可解析为三部分:

www (万维网的缩写)www可以让Web客户端(常用浏览器)访问浏览Web服务器上的页面。
baidu 域名名字 这部分可以自己申请的,域名和ip的区别其中最重要的一点就是域名更便于记忆,而ip就仅仅是一串数字不好记忆,据说京东为了购买“jd.com”这个网站域名,是花费了3000万元;而小米为了收购“mi.com”网站域名也花费了2244万元。域名名字取得好是不是很赚钱,hhhh
com (域名后缀),如.cn代表中国,以.cn结尾即中国国内域名;再如.com 供商业机构使用,但无限制最常用,被大部分人熟悉和使用;.edu为学校单位使用较多;

最后面的一串数字什么的就是一些参数了,只知道第一个分号后面的S代表资源路径 ,后面的我也不太懂,后面一大串,,,,

ip是什么的格式,是用来干什么的?

在Internet上有千百万台主机,为了区分这些主机,人们给每台主机都分配了一个专门的地址,称为IP地址。通过IP地址就可以访问到每一台主机。一个IP地址由32个二进制比特数字组成,通常被分割为4段,每段8位(1个字节);我记得我刚进大学的时候老师让我们进入学校的oj系统做题(网站是学校自己开发的),告诉我们的网址里面没有英文,而是让我们输入的是一串数字 192.168.9.210 来访问,这好像和上面的url不一样呀,这应该就是ip的模样了,那既然ip和域名都可以用来访问网站,他们之间是啥关系呢?在看了一些资料以后我是这样理解的:

为什么有了ip还要有域名,两者之间的关系是啥?

首先,打个比方ip就好像你的身份证号一样(ip是由一串数字构成的嘛),而域名就好像你的名字,区别就是域名也是独一无二的,你的身份证号是独一无二的,ip亦是;域名之所以被发明出来就是因为随着网站越来越多ip的这一串数字太不方便人记忆,于是乎人们发明域名。他们之间的关系:一个域名只能对应一个IP地址,是一对一的关系,而一个IP却可以对应多个域名,是一对多的关系。

服务器到底是什么?ip地址其实就是服务器的地址?

服务器是一种高性能计算机,作为网络的节点,存储、处理网络上80%的数据、信息;服务器是指管理和传输信息的一种计算机系统;是网络上一种为客户端计算机提供各种服务的高性能的计算机,说得通俗简介一点其实服务器的本质其实就是电脑。我们需要这部分信息就得给特定的服务器发送请求,那你所访问的浏览器应该发送这个请求去哪呢?上面不是解析出来了ip地址嘛,这个ip地址就是对应的服务器的地址,浏览器通过已知的ip地址向服务器发送请求。

那我们输入网址以后访问页面时域名和ip的转化过程是什么样的呢?

在浏览器中输入网址(url)后就是发起了请求,一旦发起请求浏览器要做的第一件事就是需要解析出来域名,就要去请求各级dns(域名解析服务),DNS服务器会对域名进行解析把域名转化为ip返回给浏览器 → 浏览器再给这个ip(ip是服务器的地址也就是浏览器给这个服务器发送请求)发送http请求 → 然后就是浏览器对指定的url进行HTTP封装 → 把url封装成http报文,浏览器把url封装成HTTP报文后 → 最后浏览器将这个HTTP请求报文发送到服务器 → 服务器获取到浏览器发送过来的HTTP请求报数据进行处理 →根据解析好的报文,在服务器端查找用户请求的资源 →  浏览器接收到服务器发送过来的html代码,然后浏览器会对这些HTML代码从上到下一句一句的解析呈现出了我们客户端这边看到的页面。

服务器进行解析的时候遇到一些标签,比如<div>,<a> ,<span> ,<p>等标签,浏览器会调用渲染引擎对这些标签进行渲染,然后把结果显示到页面。当遇到 <link href="one.css" rel="stylesheet" />的时候浏览器会再次通过Socket向服务器发送请求报文发送请求报文,来请求这个one.css文件;同理当遇到<script src="one.js"></script>的时候,浏览器又会像服务器发送请求报文,来请求这个one.js文件

给服务器发送请求的方法?

  1. 表单提交的方式,
  2. 超链接<a>
  3. 在浏览器的地址栏直接输入数据

以上就是我所理解的内容了,之所以写博客是因为想把这些过程再梳理一遍希望加深印象别一下子就忘了,不得不说计算机真的水很深,这里面的随便一个问题我估计都要花上个十天半个月都难得搞懂,一直沿到最底层的话,比如dns解析的过程,是用了好多个递归,过程复杂程度不知道,反正我没看懂;我接下来要研究一下把网页挂到网上的事情了,人生苦短,祝我幸运顺利!

猜你喜欢

转载自blog.csdn.net/qq_42179526/article/details/82762964