计算机网络
网络组成部分
- 主机:客户端和服务端
- 路由器
- 网络协议
小结:
- 网络组成部分:有主机、路由器、交换机等组成
- 网络结构:网络的网络
- 信心交换方式 : 电路交换和分组交换
- 网络分层:各层职责,物理层、链路层、网络层、运输层和应用层
- 网络协议:标头和载荷
Web应用
HTTP
HTTP1
有队头堵塞(Head of Line Blocking),无法多路复用的问题。
HTTP2
用帧的形式传输数据,带来以下好处:
- 调整响应传输的优先级
- 头部压缩
- Server Push
还是会有队头堵塞的问题。
HTTP 3:QUIC
- Quick UDP Internet Connection
- 现存网络设备对TCP和UDP支持已经僵化
- UDP不靠谱但是QUIC靠谱
- QUIC可以为除HTTP协议以外的应用层协议提供支持
CDN:DNS劫持
- 域名解析一般由网站自己处理
- 要加速的域名则重定向到CDN厂商的域名解析服务处理
- CDN厂商根据来源最近的CDN服务器的IP
- 用户直接访问最近的CDN服务器
WebSocket
- 有状态的持久连接
- 服务端可以主动推送消息
- 用WebSocket发送消息延迟比HTTP低
网络安全:如何实现身份验证
- 签名:用于鉴别身份和防止伪造
- 非对称加密性质:加密、解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥解密只能用公钥解密。
- 数字签名:对明文内容的哈希值使用私钥加密,验证者使用公钥验证
HTTPS:
把HTTP的明文换成密文,再验证身份,即HTTPS。
HTTPS = HTTP + TLS
TLS = 身份验证 + 加解密
身份验证靠PKI
服务端身份验证靠PKI,客户端身份验证靠HTTP协议。
小结:
- 网络安全三要素:机密性、完整性和身份验证
- 在没有提前交换秘密信息的前提下,无法在不安全的信道交换秘密信息
- PKI保证了普通用户不需要“面对面”和根证书机构交换根证书
- HTTP使用PKI完成了出客户端身份验证以外的特性,客户端身份验证靠HTTP协议实现
Linux基础
- Linux是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境。
- 公司内部服务(TCE,FaaS,SCM)统一使用Debian Linux系统
- 熟悉Linux基础指令,熟练运维前端常用服务(Nginx,Node.js)
- 加深对操作系统概念和实现的理解,夯实基础知识
查看Linux系统内核版本
uname -a
cat /proc/version
cat etc/os-release #查看发行版本
四个部分
- 内核
- shell (命令解释器)
- 文件系统
- 应用程序
Linux体系结构
- 内核是硬件和软件之间的中间层
- 内核是一个资源管理程序
- 内核提供一组面向系统的命令
进程管理(树形结构)
- 进程是正在执行的一个程序或命令
- 进程有自己的地址空间,占用一定的系统资源
- 一个CPU核同一时间只能运行一个进程
- 进程由它的**进程ID(PID)和它父进程的进程ID(PPID)**唯一标识
查看进程信息
#查看启动的nginx进程
ps -ef | grep nginx
#查看某个进程
top -p 93824
#关闭指定的进程
kill 93824
#全部进程动态实时视图
top
进程调度
进程调度是指操作系统按照某种策略或规则选择进程占用CPU进行运行的过程。
进程调度原则:
- 一个CPU核同一时间只能运行一个进程
- 每个进程有近乎相等的执行时间
- 对于逻辑CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
- 进程执行消耗时间和进程量成正比
内核空间(Kernal Space):系统内核运行的空间
用户空间(User Space):应用程序运行的空间
文件系统
文件系统是操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬件中,持久化的保存文件。
Linux文件系统时采用树状的目录结构,最上层是/(根)目录
虚拟文件系统
- 对应用层提供一个标准的文件操作接口
- 对文件系统提供一个标准的文件介入接口
#df命令报告文件系统磁盘空间利用率
df -T
#mount命令是挂载文件系统用的,不带任何参数运行,会打印包含文件系统类型在内的磁盘分区的信息
mount
文件读取流程
#查看当前登录用户信息
w
#查看当前用户所属的组
groups
#查看用户的uid信息
id xxxx
文件权限关于用户有三个概念:
所有者:文件的所有者
所在组:文件的所有者所在的组
其他人:除文件所有者所在组外的其他人
Linux软件包管理
- 软件包
- 通常只的是一个应用程序,可以是一个GUI应用程序、命令行工具或(其他软件程序需要的)软件库
- 软件包管理
- 底层工具:主要用来处理安装和删除软件包文件等任务,DPKG,RPM
- 上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF
总结
今天学习了计算机网络和Linux基础,学习了日常网页传输的原理和安全传输的条件,了解了日常服务器的环境和开发实用环境——Linux,为日后开发打下基础。