1. 构成计算机的三个要素
  • 计算单元
  • 存储单元
  • 控制它的指令序列

互联网运行流程:
当用户使用客户端访问某个页面时,如我们在浏览器软件的地址栏中输入url地址并按回车时,实际是通过此时正在使用的客户端发起了一个HTTP请求,该请求会发送到目标网页的某个服务器上,服务器上存储了组成目标网页的所有源文件,如图片、.html文件、.js文件等,服务器会根据请求返回对应的文件,以HTTP响应的方式返回给客户端,当客户端接收到服务器返回的文件后,会根据固定的格式解析文件,并继续向服务器请求文件中依赖的其他文件。

服务器

服务器(server),本质就是一种计算机,和我们平时使用的计算机没什么区别。服务器也包括处理器、硬盘、内存、系统总线等,但相比普通计算机,服务器更看重处理能力、稳定性、可靠性、安全性等方面,这样才能提供更可靠的服务。
作用:存储网页的所有文件、接收前端发送的HTTP请求并处理
要求:为了用户随时访问网页,必须24小时不间断工作

云服务器

目前绝大多数网站采用的都是云服务器(Elastic Compute Service, ECS),如阿里云提供的云服务器,云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。他的管理方式比物理服务器更简单高效,不用我们提前去买硬件用实体的服务器,可以快速创建或释放多台云服务器。

客户端

客户端(client)也叫用户端,指的是普通用户使用的终端。
客户端有多种形式,如访问页面的浏览器是客户端,手机上的App也是客户端。web开发最主要的客户端形式还是浏览器。

主流浏览器

image.png

浏览器内核(渲染引擎)

不同浏览器由不同的厂商提供,同时也有自己不同的版本,各品牌&版本的渲染引擎都可能不同,因此对HTML等语言的支持程度不同,可能造成对网页渲染的方式不同,同一网页在不同浏览器上加载可能产生不同结果。

浏览器 渲染引擎(内核) 说明
IE/Edge Trident IE内核
FireFox Gecko
Safari Webkit
Chrome 初期用Webkit,后期用自己研发的Blink(在Webkit基础上进行的升级) 统称为Chromium内核或Chrome内核
Opera Presto->Webkit->Blink

浏览器功能

  • 发送HTTP请求到服务器,比如在地址栏输入url按回车时触发
  • 接收服务器返回的文件
  • 将服务器返回的文件解析并显示出来

HTTP协议

Hypertext Transfer Protocol 超文本传输协议,是客户端和web服务器之间的应用层通信协议。

包括两部分

  • HTTP请求
  • HTTP响应

我们将汇编语言编写的程序转化成机器语言的过程称为汇编;反之,机器语言程序转化成汇编语言程序的过程则称为反汇编。

程序启动后,根据时钟信号,控制器会从内存中读取指令和数据。通过对这些指令加以解释和运行,运算器就会对数据进行运算,控制器根据该运算结果来控制计算机。看到“控制”一词时,大家可能会将事情想象得过于复杂,其实所谓的控制就是指数据运算以外的处理(主要是数据输入输出的时机控制)。比如内存和磁盘等媒介的输入输出、键盘和鼠标的输入、显示器和打印机的输出等,这些都是控制的内容。

CPU的内部由寄存器、控制器、运算器和时钟四个部分构成,各部分之间由电流信号相互连通。寄存器可用来暂存指令、数据等处理对象,可以将其看作是内存的一种。根据种类的不同,一个CPU内部会有20~100个寄存器。控制器负责把内存上的指令、数据等读入寄存器,并根据指令的执行结果来控制整个计算机。运算器负责运算从内存读入寄存器的数据。时钟负责发出CPU开始计时的时钟信号。不过,也有些计算机的时钟位于CPU的外部。

CPU的四个构成部分中,程序员只需要了解寄存器即可,其余三个都不用太过关注。那么,为什么必须要了解寄存器呢?这是因为程序是把寄存器作为对象来描述的。

把微服务项目中的不同服务部署在不同的服务器署就叫分布式。
什么叫不同的服务器?我在同一台电脑上开多个docker来运行不同的服务算分布式吗?