前端知识体系——网络
1、互联网的运行原理
互联网的基本原理是基于网络协议,定义计算机和网络之间的传输数据的格式,大多数协议是支持小型互联网的,并且支持路由,使传递数据的源、目的地和路由在网络中进行传播。
互联网协议中应用最广的为TCP/IP协议(传输层协议),TCP/IP协议包含TCP协议和IP协议,两个协议可以联合使用,其采用的通信方式是分组交换方式,即:
(1) 由TCP协议将数据分为多个数据包,每个数据包上添加序列号,以便接收端把数据还原成原来的格式。
(2) IP协议给每个数据包上写上发送主机和接收主机的地址,即源地址和目的地址,此时数据包就可以传递数据了。IP协议还具有利用路由算法进行路由选择的功能。
(3) 这些数据包可以通过不同的传输途径(路由)进行传输,由于路径及其他原因,数据在传输时可能出现次序颠倒、数据丢失、数据失真、重复等现象。这些都由TCP协议处理,它具有检查和处理错误的能力,以及请求发送端重发的功能。
总的来说,IP协议负责数据的传输,而TCP协议负责数据的可靠性。 TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去,服务器和客户端均可主动发起断开连接的请求。
2、什么是HTTP协议
HTTP协议属于应用层协议,它是建立在TCP协议之上的,采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。
HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
3、浏览器运行原理
知识准备:
(1) 进程:进程(process)是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位。
(2) 线程:线程(thread)是CPU调度和分派的基本单位,它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
进程可以理解为正在执行的应用程序,线程是可以理解为应用程序的代码执行器。线程是跑在进程里面的,一个进程里面可能有一个或者多个线程,而一个线程,只能隶属于一个进程。
众所周知,浏览器属于一个应用程序,而应用程序的一次执行,可以理解为计算机启动了一个进程,进程启动后,CPU会给该进程分配相应的内存空间,当我们的进程得到了内存之后,就可以使用线程进行资源调度,进而完成我们应用程序的功能。
首先,当我们是要浏览一个网页,我们会在浏览器的地址栏里输入URL,这个时候Browser Process会向这个URL发送请求,获取这个URL的HTML内容,然后将HTML交给Render Process,Render Process解析HTML内容,解析遇到需要请求网络的资源又返回来交给Browser Process进行加载,同时通知Browser Process,需要Plugin Process加载插件资源,执行插件代码。解析完成后,Render Process计算得到图像帧,并将这些图像帧交给GPU Process,GPU Process将其转化为图像显示屏幕。
4、域名和DNS以及DNS是如何工作的
DNS是域名系统的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个唯一的IP地址,在Internet上域名与IP地址之间是一对应的,DNS就是进行域名解析的服务器。通过主机名,最终得到该主机名对应的IP地址的过程叫作域名解析
DNS的工作方式:
1) 静态映射
每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用。
2) 动态映射
建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。
5、什么是网络托管服务
它是一种提供基础设施的服务,允许企业发布网站,网站托管通常定期收取费用,为企业提供域名,网站页面存储和允许通过Internet和web浏览器运行一般访问的服务器。
web托管一般分为4类:
1.共享虚拟主机:
对流量小的企业来说,可能是最常见对我选择,共享托管意味着多个网站存储在单个服务器或单个硬件上,共享服务器通常是最便宜的选择,这使它们吸引初创公司和其他小企业。
2.专用服务器:
当一台服务器对一个网站运行的主机时,它被称为专用服务器,这种配置允许服务器的计算能力集中在它所承受的网站上。专用服务器通常比共享服务器更昂贵。但对于那些网站性能对成功起至关重要的作用的企业来说,这种额外成本是值得的。
3.云主机(VPS):
虚拟专用服务器,允许多个网站由一个基于云的服务器系统托管,VPS本质上是基于云的共享服务器,但是由于云计算的可伸缩、灵活性和冗余。VPS可以提供更多的特性。对于计算机和特性。对于计算性和特性需求随时间变化的企业来说。VPS通常是一个不错的选择。
4.网站托管:
从物理层面上来说,网站托管的服务器可以由前面提供到的三个配置中的任何一个托管;不同之处在于网站服务器是专门为网站页面设计和优化的,使用比较简单。