跳到主要内容

有关 Internet

Internet 是如何工作的

  • 互联网将全球的计算机联系起来,用一套标准的通信协议 TCP/IP 进行通信。

  • 互联网的连接方式: 计算机 连接到 路由器 使用 调制解调器 使得能够通过电话设施与 互联网服务运营商(lsp) 连接,得以将所有的计算机连接至互联网。

  • 域名与 IP 地址的映射: DNS(域名系统)(一个分布式数据库来完成二者之间的映射)。

  • 域名与 IP 地址的关系:多个域名可以映射到同一个 IP 地址,但是一个域名理论上不能解析到多个 IP 地址。

有关域名

  • 我们无法实际的拥有一个域名,只能通过购买域名来获得一个域名的一段时间的使用权。

  • 一个域名由两个或两个以上的标签组成,每个标签由一系列的字符组成,每个标签之间用 . 分隔。

  • 域名的阅读方向是从右往左,最右边为 顶级域名。它左边为 二级域名,依次类推。

  • 域名的查询过程有两种:迭代查询递归查询

计算机网络知识

此处简略地描述部分 Internet 相关知识作为前端学习的铺垫,若要深入了解计算机网络的相关知识可以移步 Jetzihan 博客

HTTP 是什么

  • HTTP 是一种能够获取网络资源的通信协议: 超文本传输协议,是在 web 中进行数据交换的基础,是一种 client-server 协议。

  • HTTP 协议遵从客户端-服务器模式,客户端发出请求直到收到服务端的相应。

  • HTTP 是一种无状态协议,接收端将不会保存会话状态,单独处理每一个发送方的独立请求。这意味着可以通过 HTTP 发起DDos 攻击,大量的 HTTP 请求可以被用于攻击某一目标设备,这被视为是应用层攻击的一部分。

  • 更多有关 HTTP

简单了解 web 浏览器如何工作

web 浏览器有何功能?

直观上,输入一个网址,浏览器将向服务器请求该 web 资源,并且将得到的资源显示在浏览器的图形界面上。这里提到的资源可以是 HTML 文档、pdf、图像等等内容,这些内容用统一的URI(统一资源标志符)指定。

URI 和 URL 的区别

URI 是统一资源标志符,这是一种语义上的抽象概念,为的是将每一种资源如 HTML 文档、图像、视频等进行唯一性标识。不严谨的比喻 URI 是每一种资源的身份证。

URL 是统一资源定位符,是一种具体的资源定位方式,是 URI 的子集,用于描述如何定位某一种资源。相比于 URI,URL 不仅仅是一个身份证,还包含了定位的具体信息,比如说在哪个城市的哪个街道的哪个门牌号。

当浏览器得到服务器的资源后,浏览器会根据资源的类型进行相应的处理,比如说对于 HTML 文档,浏览器会解析 HTML 文档,然后将其渲染成图形界面,而对于图像,浏览器会将其显示在图形界面上。

浏览器解释和渲染 HTML 文档 的方式由 HTML和CSS规范 所规定,这些规范由W3C组织(万维网联盟)进行维护。

web 浏览器的结构

  • 用户界面:包括地址栏,书签菜单,前进/后退按钮,以及主窗口用于显示请求的页面。

  • 浏览器引擎:用于用户界面和渲染引擎之间的调度和指令传送

  • 渲染引擎:用于显示请求的内容,比如 HTML 文档,图像,pdf 等等。对于 HTML 文档,它负责解析 HTML 和 CSS 内容。若是 pdf 等其他格式的文档,则会使用其他插件来显示。

  • 网络:用于网络调用,比如 HTTP 请求。

  • UI后端:用于绘制基本的窗口小部件,比如组合框和窗口。其使用操作系统的用户界面方法。

  • JavaScript解释器:用于解析和执行 JavaScript 代码。

  • 数据存储:浏览器需要在硬盘上保存各种数据,比如 Cookie

bowser (图片来源)

渲染引擎的基本流程

  • 渲染引擎将 HTML页面的形式进行解析,包括 CSS文件 和样式元素,然后将解析后的结果转换为 DOM树
DOM

DOM 是文档对象模型,是一种用于描述 HTML 和 XML 文档的编程接口。DOM 将文档呈现为节点和对象的层次结构,DOM 的节点可以被修改,从而改变文档的结构、样式和内容。

  • 同时将创建一个 渲染树 ,其中包含了样式信息和元素显示的顺序,保证了元素是按所需顺序显示。

  • 在创建 渲染树 时,不会直接指定位置,指定位置和计算大小的过程被称作是布局过程,在这个过程中将会给节点分配确切的坐标。

  • 最后将 渲染树 绘制到屏幕上。遍历 渲染树,将节点使用 ui 后端层绘制到屏幕上。

每个浏览器都有自己的渲染引擎,这导致开发者在网站在进行适配时可能会遇到一些问题。

有关 hosting

  • hosting 是指将网站的文件放在服务器上,使得网站可以被访问。hosting 服务商提供了服务器,以及服务器的管理,比如安全,备份,性能等等。

  • 可用的 hosting 服务商有很多,托管可以使用 githubgitlabgitee阿里云腾讯云 等等。