当前位置: 首页 > news >正文

网站开发后台框架传智播客培训机构官网

网站开发后台框架,传智播客培训机构官网,烤漆 东莞网站建设,企业内部网站制作模板#x1f442; 夏风 - Gifty - 单曲 - 网易云音乐 目录 #x1f33c;前言 #x1f382;面试题(下) 4#xff09;HTTP报文解析 为什么要用状态机 状态转移图画一下 https 协议为什么安全 https 的 ssl 连接过程 GET 和 POST 的区别 5#xff09;数据库注册登录 登… 夏风 - Gifty - 单曲 - 网易云音乐 目录 前言 面试题(下) 4HTTP报文解析 为什么要用状态机 状态转移图画一下 https 协议为什么安全 https 的 ssl 连接过程 GET 和 POST 的区别 5数据库注册登录 登录说一下 用户名/密码保存状态了吗如果要保存如何做cookie session 10 亿条用户名和密码 load 到本地然后 hash 匹配依然很耗时如何优化 项目用的是 mysql那么了解过 redis 吗用过吗 6定时器 为什么要用定时器 定时器工作原理 双向 list删除和插入的时间复杂度如何优化 最小堆优化说说时间复杂度和原理 跳表优化说一下时间复杂度和原理 7日志系统 说下日志系统运行机制 为什么要异步和同步区别是 现在你要监控服务器状态输出监控日志那么日志如何分发到不同机器消息队列 8压力测试 并发量如何测试 webbench 是什么原理是 测试时遇到的问题 Web 服务器 QPS 到达瓶颈一直上不去怎么办 9综合能力 项目亮点是区别于同类项目 前端发送请求后服务器处理过程涉及的协议 前言 另外 2 篇 WebServer -- 架构图 面试题(上)-CSDN博客 WebServer -- 八股终章-CSDN博客 面试题(下) 4HTTP报文解析 为什么要用状态机 它是一种抽象的理论模型将有限个变量描述的状态变化过程以可构造可验证的方式呈现出来比如封闭的有向图通过 if-else, switch-case 和 函数指针 实现目的是封装逻辑优先状态机是逻辑单元内部的一种高效编程方法根据不同状态 或 消息类型进行相应的处理逻辑浅显易懂 状态转移图画一下 https 协议为什么安全 参考博客  为什么HTTPS是安全的一张图告诉你-腾讯云开发者社区-腾讯云 (tencent.com) 为什么HTTPS比HTTP更安全? - 知乎 (zhihu.com) 网络面经使用HTTPS就绝对安全了吗-51CTO.COM HTTP vs HTTPS: Why Having An SSL Is Important (seahawkmedia.com) 解答 https 采用 SSL / TLS 协议进行加密通信 通过对称加密和非对称加密确保数据在传输过程的保密性通过散列函数验证信息的完整性防止数据在传输过程被篡改https 通过正数机制进行身份验证 客户端验证服务器的 CA 证书避免中间人攻击。CA 证书具有一定公信力且大多付费避免黑客冒充网站获取证书https 的端口是 443http 是 80这点也不一样 https 的 ssl 连接过程 先看图 再看解析 client 和 server 协商过程client 发送自己支持的加密协议server 选择确定 SSL 版本使用的加密算法密钥长度server 发送【公开密钥证书】给 clientclient 用【认证机关】的公开密钥确认证书有效性然后取出【公开密钥】client 生成【对称密钥】即随机数通过证书中的【公开密钥】加密发送给 serverserver 使用【私钥】解密获取【对称密钥】随机数使用【对称密钥】加密数据客户端接收到加密数据后使用【私钥】随机数解密数据并将结果呈现给用户 GET 和 POST 的区别 GET和POST两种基本请求方法的区别 - 在途中# - 博客园 (cnblogs.com) HTTP 方法GET 对比 POST | 菜鸟教程 (runoob.com) 相同点  首先GET 和 POST 是 HTTP 协议中的两种发送请求的方法 其次HTTP 是基于 TCP / IP 的关于数据如何在网络中通信的协议 所以 GET 和 POST 的底层都是 TCP / IP本质是一样的东西 但是大多数浏览器会限制 url 长度在2000个字节以内大多数服务器最多处理 64K 大小的 url 如果你用 GET 服务在请求主体request body里藏了数据有些服务器会直接忽略你的请求就不会被接收所以才要遵循下面的规定 不同点 GET 产生一个 TCP 数据包POST 产生两个 1对于 GET 请求浏览器会把 http header 和 data 一起发送出去服务器响应 200 ok 2对于 POST 呢浏览器先发送 header服务器响应 100 continue浏览器第二次才发送 data服务器响应 200 okGET 参数 url 可见POST 参数 url 不可见GET 可以缓存POST 不可缓存POST 更安全 5数据库注册登录 登录说一下 涉及 4 个流程分别是 载入数据库表数据库数据载入服务器提取用户名和密码解析报文提取用户名和密码注册登录流程页面跳转 用户名/密码保存状态了吗如果要保存如何做cookie session 通过 cookie 和 session 进行保存 cookie 是服务器给用户分配的一串“身份标识”比如“1024happy” 每次客户发送数据时都在 HTTP 报文上附加这个字符串服务器就知道你是谁了session 是保存在服务器的状态每当一个客户发送 HTTP 报文过来服务器会自己记录的用户数据中查找类似核对名单 cookie 与 session 的区别 面试官说下Cookie和Session的关系和区别-腾讯云开发者社区-腾讯云 (tencent.com) cookie 数据存放于客户端session 数据存放于服务器但是服务端的 session 的实现依赖于客户端的 cookiecookie 不是很安全别人可以分析存放在本地的 cookie 并进行 cookie 欺骗考虑到安全应当使用 sessionsession 会在一定时间内保存在服务器。当访问增多比较占用服务器性能。此时为了减轻服务器压力应当使用 cookie单个 cookie 在客户端限制是 3K即一个站点在客户端存放的 cookie 不能超过 3K 10 亿条用户名和密码 load 到本地然后 hash 匹配依然很耗时如何优化 数据预处理对用户名和密码进行哈希加密以减少实际验证过程中的计算量高性能存储用户信息存储在高性能介质上如固态硬盘提升读取速度负载均衡和集群部署系统部署在多台服务器并通过负载均衡来均衡请求流量缓存策略使用 Redis 等缓存技术将热门数据缓存起来异步处理用户登录验证等耗时操作进行异步处理使用消息队列或任务调度系统以便验证过程和用户的实际请求解耦 项目用的是 mysql那么了解过 redis 吗用过吗 Redis 是一种基于内存的键值对存储系统特点 数据结构多样支持字符串哈希列表集合有序集合等高性能数据存储在内存所以读写很快适合作为缓存或高速数据存储使用持久化支持数据持久化到磁盘确保数据不会因服务重启而丢失发布订阅提供发布订阅的功能用于消息传递和事件通知 Redis 和 Mysql 的区别 数据模型Redis 是键值对存储系统适合存储简单的键值对和复杂数据结构而 Mysql 是关系型数据库支持表与表间的关联存储介质Redis 数据存储在内存中读写快适合高性能场景Mysql 数据存储在磁盘读写相对较慢数据查询Redis 查询基于键值对不支持复杂 SQL 查询Mysql 支持复杂 SQL 查询可以进行关系型数据的复杂查询和连接操作 最近在看《Redis设计与实现》看完后打算做一下 Tiny KV基于跳表的redis数据库项目  6定时器 为什么要用定时器 定期清楚不活跃连接 定时器工作原理 服务器给每个事件分配一个定时器。 通过 SIGALRM 信号实现定时器。 首先定时器在一个升序链表上通过 alarm() 函数周期性触发 SIGALRM 信号接着信号回调函数利用管道通知主循环主循环接收到信号后处理升序链表上的定时器若一定时间内无数据交换连接关闭 双向 list删除和插入的时间复杂度如何优化 如果已知要删除 / 插入的节点那么删除 / 插入 都是 O(1) 如果只给了节点的值或序号那么增删的时间复杂度都是 O(n) 优化 最小堆优化定时器跳表优化定时器  最小堆优化说说时间复杂度和原理 原理 1父节点的键值总是小于等于任一子节点的键值根节点是最小元素 2数组表示的完全二叉树 3根节点 0对于任意节点 i父节点是 (i - 1) / 2左儿子 2*i 1右儿子 2*i 2优化 1最小堆以每个定时器过期时间进行排序最小的定时器位于堆顶根节点 2当 SIGALRM 信号触发 tick() 函数时执行过期定时器清楚 3如果堆顶的定时器过期删除堆顶定时器并重新建堆 4再判定堆顶是否过期一直循环直到未过期复杂度 插入 O(logn)删除 O(logn) -- 因为这是一棵完全二叉树而且满足父节点小于等于子节点的要求所以 n 个元素插入删除的复杂度是 logn 跳表优化说一下时间复杂度和原理 innodb为什么选择B Tree而不是跳表Redis为什么选择跳表而不是B Tree-腾讯云开发者社区-腾讯云 (tencent.com) 原理 1链表上添加多层索引实现快速查找增加索引层达到空间换时间的目的 2原始链表 n 个节点索引层数为 logn - 1每一层访问次数都是常量所以查找的时间复杂度 O(logn)优化 1跳表查找 / 插入 / 删除任意节点时间复杂度都是 O(logn) 2过期任务查找只需要和第一个节点比较因为第一个节点就是最小节点复杂度 查找等 O(logn)空间复杂度 O(n) 7日志系统 说下日志系统运行机制 单例模式初始化日志系统根据配置文件确定同步还是异步的写入方式 为什么要异步和同步区别是 同步 1每次写入日志会立即进行系统调用将日志信息写入磁盘 2日志信息较大或写入频率较高时同步方式会产生较多的系统调用容易造成系统瓶颈还会阻塞日志系统的运行异步 1异步方式采用生产者-消费者模型将日志写入操作与其他任务解耦 2异步方式中将需要写入的日志信息先存储在缓冲区接着交给单独的线程去处理磁盘 I/O 操作减少对调用线程的阻塞时间 3调用日志对象的线程只需要完成 2 次内存拷贝第一次拷贝到缓冲区第二次写入磁盘而不会阻塞在 I/O 操作 通过异步方式写入日志可以避免频繁的系统调用和阻塞并通过双缓冲区减少内存拷贝次数并解决数据丢失的问题 【双缓冲区是为了缓解内存读写速度和磁盘读写速度的差异导致部分数据丢失】 关于生产 / 消费者模型 生产者消费者模式是指多个进程共享一个固定大小的缓冲区其中一个进程负责生产数据另一个进程负责消费数据。使用生产者消费者模式可以平衡生产者和消费者之间的处理能力避免出现生产者等待消费者或消费者处理等待的情况。缓冲区的作用是存储生产者生产的数据起到数据缓存和解耦的作用。特点包括保证生产者不会在缓冲区满时继续放入数据消费者不会在缓冲区空时消耗数据并通过进入休眠状态和唤醒来实现生产者和消费者之间的协调。 现在你要监控服务器状态输出监控日志那么日志如何分发到不同机器消息队列 1为了便于故障排查或服务器状态分析以及确定是否需要维护可以使用消息队列进行监控日志的分发。 2常见的消息队列包括 MQTTRabbitMQ 3使用消息队列分发日志的基本流程 设置消息队列在服务器集群部署消息队列系统比如 MQTT 或 RabbitMQ日志写入服务器状态监控产生日志时将日志写入消息队列的生产者端日志里包含服务器状态的信息消息分发消息队列将接收到的日志消息分发给订阅了的消费者消费者处理消费者将日志写入如特定机器的日志文件中便于后续状态分析 还可以对日志进行筛选过滤和聚合更好理解服务器状态 8压力测试 并发量如何测试 通过 ./webbench -c 10001 -t 5 http://127.0.0.1:9006/ 进行压测 达到了上万并发量clients和上万QPSquery per second webbench 是什么原理是 一个压测软件可以在命令行通过 sudo apt-get install 安装依赖以及后续的源码的下载和安装 原理 webbench 首先 fork 出多个子进程每个子进程都循环做 web 访问测试。 子进程把访问的结果通过 pipe 告诉父进程父进程做最终结果的统计 详细说明 1父进程调用 fork() 系统调用时操作系统会创建一个新的子进程这个子进程是父进程的一个副本包括代码数据以及各种资源和状态。 2父进程和子进程都会继续执行接下来的指令但是 fork() 函数返回值不同。 3具体的说父进程中fork() 返回值是新创建的子进程 IDPID而子进程fork() 返回值是 0 4返回值的不同使得父子进程可以分别执行自己的逻辑 5父进程多次调用 fork() 创建多个子进程子进程间互相独立有着自己的进程 ID同时运行在自己的地址空间里 测试时遇到的问题 nope... Web 服务器 QPS 到达瓶颈一直上不去怎么办 后端跳槽必问八股~ 一Mysql 性能 CPU占用过高不合理的 SQL 查询导致的 CPU 负载过高需要优化索引与 SQL 语句设计不合理业务逻辑实现不合理会增加数据库压力考虑加缓存以减轻数据库负载 二系统架构 水平扩展增加服务器使用负载均衡来处理更多请求数据库优化优化查询使用缓存技术比如 Redis 减轻数据库负载异步处理将耗时任务转为异步任务减少请求响应时间缓存对于频繁访问的数据采用 redis 集群等分布式缓存系统 三资源占满问题 CPU带宽IO 被占满可能由于密集运算贷款或后端服务等原因导致资源瓶颈需优化代码结构排查异常逻辑增加服务器资源基础组件问题网络框架性能log 库性能网络参数配置也可能是瓶颈的原因 9综合能力 项目亮点是区别于同类项目 烂大街的玩具一样的八股触发器哪里来的亮点你是眼瞎吗 不过下一步可能加个协程库提升响应速度和并发量 或者用C14重写一遍 以后就不会再碰服务器项目了C服务器 / 后端没有就业岗位只是拿来打基础的 而且C找工作不容易大概率要转的但是前期打下的基础以后可以做点相关的方面校招也不会要求你多深入八股 / 算法 / 项目合格的前提下有一两段言之有物的实习入了行提升才快 前端发送请求后服务器处理过程涉及的协议 HTTP协议的请求和响应底层传输协议 TCP/IP 确保数据传输的可靠性
http://www.hkea.cn/news/14390063/

相关文章:

  • 物流网站建设图片昆明短视频运营公司
  • wordpress子站点解析做电影网站怎么批量去水印
  • 公司企业网站程序下载建设银行北京东四支行网站
  • 电子商务网站有哪几种百度搜索推广技巧
  • 求个网站2021能用的怎么建设一个音乐网站
  • 网站策划书3000网站制作网站维护
  • 成都网站建设模版企业网站推广费用
  • 比较好约的网站设计平度做网站推广
  • 哪些网站做的海报比较高大上门户网站系统设计
  • 网站建设 技术团队想做一个部门的网站怎么做
  • 番禺网站开发平台网络营销名词解释电子商务
  • 哪里有学习做网站的wordpress做商城网站吗
  • 网站建设低价建站损失在哪里2017两学一做网站
  • 网站设计多少钱电子商务网站建设的基本要求
  • 电脑硬盘做网站服务器教程百度一下百度网页版主页
  • 泰安网站开发哪家便宜天津最新消息今天
  • 桓台县城乡建设局网站公司做环评的网站
  • 企业网站建设可以分为( )交互层次水处理设备网站建设
  • 网站开发亿码酷负责公司企业模板
  • 莆田网站建设技术托管苏州网站建设搜王道下拉
  • 外贸行业网站建设公司网站首页快照怎么做
  • 企业网站主页设计图片东莞开发公司网站建设
  • 郭仓镇做网站集团网站目标
  • 做门户网站用什么系统营销推广方案怎么写
  • 东莞+网站+建设+汽车邢台网站建设制作
  • 聊城网站推广怎么做江阴哪里有做网站推广
  • 企业可以在哪些网站做免费宣传什么公司需要建立网站
  • 网站建设文字资料做go分析和kegg分析网站
  • 烟台网站制作建设免费网络电话呼叫系统
  • 东莞市的网站公司哪家好已备案域名买卖