正向代理和反向代理的本质都是代为收发请求和响应。
正向代理是一个位于客户端和目标服务器之间的代理服务器。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置才能使用。
反向代理正好相反。对于客户端来说,反向代理就好像目标服务器,并且客户端不需要进行任何设置。客户端向反向代理发送请求,接着反向代理判断请求走向何处,并将请求转交给客户端,使得这些内容就好似他自己一样,因此客户端并不会感知到反向代理后面的服务,也不需要客户端做任何设置,只需要把反向代理服务器当成真正的服务器就好了。
正向代理隐藏了客户端。(访问谷歌的梯子)
反向代理隐藏了服务器。(负载均衡,访问内网服务器)
参考资料:
进程
进程指一个正在执行的程序,是系统资源分配的最小单位,一个进程一般由以下几部分组成:
进程的特点:
线程
线程又称为轻量级进程,是进程内的一条运行线,是程序的实际执行者,一个进程至少包含一个主线程,也可以有更多的子线程。
线程的特点:
对操作系统来说,线程是最小的执行单元,进程是最小的资源管理单元。
无论进程还是线程,都是由操作系统所管理的。
协程
协程,英文Coroutines,是一种比线程更加轻量级的存在。正如一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程。
协程不是被操作系统内核所管理,而完全是由程序所控制(也就是在用户态执行)。
参考资料:
如上图所示,进程是有不同的状态的,当有多个进程处于就绪状态时,CPU调度程序从中选择一个进程将CPU分配给它。
决定选择哪个就绪进程去CPU运行的部分称为调度程序,它所使用的算法称为调度算法。
先来先服务调度算法
最短作业优先算法
高响应比优先算法
响应比=(等待处理器的时间+期望服务的时间)/ 期望服务的时间
时间片轮转算法
优先权调度算法
多级队列调度
多级反馈队列调度
虚拟存储器就是指仅把作业的一部分装入内存就可以运行作业的存储系统。
它具有请求调入功能和置换功能,是从逻辑上对内存容量进行扩充的一种存储系统。
请求页式存储管理
缺页中断
缺页:进程执行时要访问的页面不在内存
缺页导致缺页中断:OS响应缺页中断,把所需页面调入内存
缺页置换算法
最优页面置换算法
先进先出置换算法
LRU置换算法(Least Recently Used 近期最少使用)
在置换时选择未使用时间最长的页面
LRU算法的实现:计时器
LRU算法的实现:双向链表
在访问页时将此页移动至head
置换时不需要查找,替换tail的页面
分类 | 描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或者无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
常见的状态码
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
200 | OK | 请求成功,一般用于GET与POST请求 |
320 | Found | 资源临时被移动,客户端应继续使用原有URI |
403 | Forbidden | 服务器理解客户端的请求,但是拒绝执行此请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源 |
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
502 | Bad Gateway | 网关或者代理服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 |
参考资料:
HTTPS的特性
机密性
对称加密,非对称加密,混合加密
完整性
摘要算法
身份认证,不可否认
数字签名(私钥+摘要算法)
参考资料:
索引
事务
斐波那契数列----有一段楼梯有n级台阶,规定每一步只能跨一级或两级,要登上第n级台阶有几种不同的走法?
字符串转数字(比如说string类型的123,转化后应该为int类型的123)
一面大概经历了1.30小时,面试官基本是按照我简历中项目所涉及的技能点来问我的,所有的知识点都问的很浅,真的是很基础的东西,三道算法题前两道都是说思路,最后一道给我分享了一个腾讯文档让我手敲代码,总体难度属于简单。
原文:https://www.cnblogs.com/yahuian/p/11486311.html