从输入url到页面展现(二)找服务器其实是在找IP地址

这篇具有很好参考价值的文章主要介绍了从输入url到页面展现(二)找服务器其实是在找IP地址。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

前一节我们讲述了url的规则,url的几种类型,以及访问web服务器的时候,如果用户访问的url如果不包含index.html的话,大概会如何去寻找这个url对应的文件,如果感兴趣的同学可以回头去看上一篇:从输入url到页面展现(一)从浏览器解析url开始

下面开始本小节的知识点,浏览器解析url后,我们先对响应请求有个认识,然后知道找web服务器,其实主要是找那台具体服务器的IP地址

从输入url到页面展现(二)找服务器其实是在找IP地址

目录

前言

1.  通过url发送请求,返回响应

2. 一个图片也是一个http消息 

3.  找web服务器,其实是在找IP地址

4. 我要给面试官用大白话讲网络

5. 把服务器IP地址说的更详细一点 

6. 小结


1.  通过url发送请求,返回响应

例如我们上节课中说到的 http://www.aa.com/hello/index.html 这个例子,用户输入的这个url网址,一般都是以get的方式向服务端发送请求,而浏览器通过解析,也会生成http请求消息,告诉服务器,你要读取服务器下 /hello/index.html 文件的数据,存放到响应消息中,然后返回给客户端。等浏览器收到这些响应消息的时候,就会通过一定的规范,将返回数据显示在浏览器上,呈现给用户。而返回响应的过程中,会包含一个重要的响应状态码

从输入url到页面展现(二)找服务器其实是在找IP地址

2. 一个图片也是一个http消息 

如果你需要请求的网页是纯文本的,那么直接返回响应,浏览器渲染即可。如果页面中包含图片信息,1个或者N个,那么网页会在相应的位置嵌入图片文件标签,我们知道HTML标签中的图片标签是img,浏览器就会在响应位置进行计算,然后留出显示图片所需要的位置,空间,信息,这个时候,会再次生成http消息,向图片所在的服务器发送请求。这个步骤和我们获取网页文件的步骤是一样的,什么这个面试题可以换一个问法,就是:如果浏览器输入一个图片的url,到页面渲染图片,这个过程是怎么样的?

我们知道,发送一个http请求,生成1个http消息,一般只包含1个url,所以也就是只能获取一个图片,那么如果网页中包含5个图片呢,算上我们之前获取网页的http请求消息,一共就会生成6个http消息了。

所以,浏览器和web服务器的重要分歧之一或者说浏览器的重点工作之一,就是指挥这一系列请求进行发送,然后获取到响应信息进行图文并茂的展示,但是web服务器,说实话,他就比较懒,他不关心你需要展示几个图片,多大多小,你需要的图片是要展示在网站上,还是自己本地的页面上,你请求,我就给你,我不关心你请求几次,你请求一条我就给你一条响应。

但响应头却也有所不同,比如响应HTML文件的content-type值是text/html,而响应图片的content-type值是 image/png

从输入url到页面展现(二)找服务器其实是在找IP地址

 文章来源地址https://www.toymoban.com/news/detail-416244.html

3.  找web服务器,其实是在找IP地址

尽管我们是在浏览器输入的 http://www.aa.com/hello/index.html,但是浏览器也就是解析一下这个url链接,他其实浏览器并没有往服务器发送请求的网络能力。我们上面说了,浏览器解析了url,生成1个或者N个http请求,这就是个预备工作,谁可以往出发送请求呢?你是不是想到了网线,wifi啥的?说的笼统点,就是浏览器希望告诉操作系统,我要往出发请求啦,你可以帮我发送出去吗?

虽然我们输入的 www.aa.com 什么什么,但服务器那台机器其实就是所谓的ip,我们一般团队里的同事都说ip为什么什么的那台机器,不会说域名所属的那台机器,也只有ip能表明我们真正要找到的那台,存放着我们index.html的那台机器。所以,我们输入的这个域名,其实和服务器那台机器的ip是有一定的绑定关系的。也就是说一个域名可能指向了1台或者N台服务器。

4. 我要给面试官用大白话讲网络

我们整个互联网的那个设计思路是啥?你要想到TCP/IP,比如我们每个公司或者家里可以称作为一个小的子网,我们的公司里有好多台机器,也就是子网其实也包含了很多台机器,我们在公司可以不联网也互相访问,很多人一问他你做过什么项目,做过管理系统,你们访问不到,我们只能内部网络访问,外边访问不着。这就好比是我们的管理系统部署在公司内部的局域网,或者是公司这个小子网上。这些个内部的机器再找个集线器链接起来,我们互相访问。但想访问外面的东西,让自己公司连上往,每个公司再添加上一个路由器,互相连接起来,组成了大的互联网。

从输入url到页面展现(二)找服务器其实是在找IP地址

5. 把服务器IP地址说的更详细一点 

比如许文强住在霞飞路99号,这么说可能还是不够详细,比如许文强,陆如萍都住在霞飞路99号吧,然后许文强住在99号301室。这个99号就是整个子网,99号里住着很多人,也许还有明台住在302室,所以他们很多人都住在99号,那么号这个“网络号”就分配给了住在99号,而具体到某一个室呢,就是那一台具体的服务器了,室也就有了自己的主机号,具体起来“霞飞路99号301室”,这个地址就很具体了,快递一个剃须刀直接就可以发送给许文强,而这个具体的地址不就是所谓的IP地址了嘛。

通过这个具体的IP地址,我们找到了许文强,也就是找到了存放 /hello/index.html 的服务器,从而将之前生成的http消息发送到具体的服务器。不过真实的网络肯定还有先过“集线器”这一步,不过做为回答面试题,这一步可以省略掉。

说点题外话,网络中有个专用词叫“下一跳”,大概思路就是我们本地的浏览器把http消息委派给操作系统,操作系统往出发消息,然后我们处于一个子网呀,对吧,子网把消息发送给“集线器”,集线器又找到我们自己或者离我们最近的路由器,这个时候已经把ip地址告诉路由器了,路由器看到ip地址“霞飞路99号301室”,看到后发现,哦,我要去找下一个路由器了,决定把这个消息发送给下一个路由器了,“下一跳”大概意思就是我下一次要跳到那个路由器去了。如果你某一天听到网络同学说xiayitiao,万不可理解为他被吓坏了,吓了一大跳。

 

6. 小结

从浏览器输入url到页面展现,这本身就是一个很蛋疼的问题,我们做为前端开发,如果经验少一些,很容易对服务器啦,网络啦,了解的不多,但如果你不了解这些呢,回答起这道面试题必定很空洞,说白了就是你回答完了,很容易让面试官无感,觉得你回答后根本无法给你加分。

所以希望读完本专栏,可以让你对整体的http链条,其中的网络走向知识,请求回的页面优化都有个更详细的认知。我相信,读完后,你的横向知识面一定会超出前端范畴的

 

 

到了这里,关于从输入url到页面展现(二)找服务器其实是在找IP地址的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL Server(解决问题)已成功与服务器建立连接,但是在登录过程中发生错误

    SQL Server(解决问题)已成功与服务器建立连接,但是在登录过程中发生错误。provider: Shared Memory Provider, error:0 - 管道的另一端上无任何进程。我们将 身份验证 选择为 SQL Server 身份验证。输入刚刚创建的用户名和密码: 但是现在还是不能直接使用,因为权限问题。你会看到下

    2024年02月06日
    浏览(47)
  • SQL Server :已成功与服务器建立连接,但是在登录前的握手期间发生错误。

    学习sqlserver的时候,默认的身份验证是windows的身份验证。 而在进一步学习的时候希望改成sqlserver的身份验证。操作流程无非就是选中服务器——》右击属性 再按如下图选择,当然sqlserver有默认的身份验证账号,sa,操作教程也有,这里不谈。我也是按如此操作的 当然我画蛇

    2024年02月07日
    浏览(51)
  • 通过C++发布一个web api服务器,其实没有想象的难,一个库就够了

      为了实现一个包含静态文件输出、GET、POST 请求处理(含参数读取)、文件上传和下载功能的 Web API 服务,我们将使用  cpp-httplib 作为 HTTP 服务器库。首先,确保你已经安装了该库。 下面是一个简单的示例代码,演示如何使用  cpp-httplib 创建一个包含上述功能的 Web API 服

    2024年02月04日
    浏览(46)
  • 【sqlserver】已成功与服务器建立链接,但是在登录过程中发生错误。(provider:TCP提供程序,error:0 - 指定的网络名不再可用。)

    配置管理器,mssqlserver的协议 Named Pipes 启用,重新sqlserver服务试一下,我是自己摸索这样解决的,不行的话,可以看下下面链接建议 error:0 - 指定的网络名不可用

    2024年01月18日
    浏览(36)
  • windows 11 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: ssl 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。)

    目录 问题说明: 解决方法: 操作步骤:  查看结果命令:  windows 11 更新后无法链接windows 2003 系统的mssql  微软说明 反正我是看不懂,倒腾老半天我的电脑保留如下图协议问题解决。  右键点击windows图标-》打开 终端(管理员)把命令贴上就好了。  解决方法 重启sql ser

    2024年02月12日
    浏览(51)
  • 【通过URL获取目标服务器IP和端口号】

    1.1 域名解析 URL中的域名需要先经过域名解析,将其转换为对应的IP地址。域名解析通过DNS(域名系统)进行,将域名映射到IP地址。DNS使用层次化的命名体系,包括根域、顶级域、二级域等。域名解析的过程涉及到递归查询、迭代查询和缓存等机制。 1.2 DNS查询 在进行域名解

    2024年02月16日
    浏览(41)
  • 企业微信消息推送(一)接收消息服务器URL

    1.点击左上角头像,打开微信管理平台 2.创建应用 3.获取五个参数 3.1获取应用的AgentId、Secret 3.2获取企业ID 配置接收消息服务器URL 企业微信限制过多,公司域名所有权检验不通过。采用接收消息服务器URL的方式。 3.3 获取token、EncodingAESKey 4.1 内网穿透、本地开发 先将请求打到

    2024年02月04日
    浏览(45)
  • 【SpringBoot】-- 实现本地文件/图片上传到服务器生成url地址

            在java项目中你可能会有以下需求:用户上传本地图片,然后展示在网页上。本篇文章将使用阿里云oss实现上传图片到oss,oss生成url。 首先进入阿里云,按如下操作 进入创建页面,修改读写权限为公共读 然后进入bucket,创建AccessKey 创建后,保存好AccessKeyID和Acces

    2024年04月10日
    浏览(48)
  • Java实现文件上传到服务器本地,并通过url访问

    Java实现文件上传到服务器本地,并通过url访问 有个需求,前端上传文件,需要用开关的方式同时支持上传七牛和服务器本地,方便不同的用户需求合理分配资源。本篇主要介绍文件上传到本地,然后通过url访问。 首先想到的就是可以通过SpringBoot通常访问静态资源的方式,当

    2024年02月03日
    浏览(61)
  • 【linux】linux服务器判断域名、IP、端口、URL是否有效

    活动详情地址:话题挑战赛第2期 参赛话题地址:运维技术分享 在平时运维过程中,经常会遇到需要判断地址是否有效的情况,比如: 1、服务器是否通外网 2、第三方提供的IP、端口是否能够访问 3、对方域名是否能够访问 … 下面列举几种linux服务器常用的检测方式 ▶ 描述

    2024年02月01日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包