前言

作者: Black哞哞儿 | 来源:发表于2019-05-29 16:16 被阅读0次

    为什么要写一个专栏来总结《从一个浏览器的请求到响应的过程,来总结这一二年我遇到的“鬼”知识点》这么庞大的知识点呢?

    写这些东西绝不是为了吹嘘自己懂了什么或者是自己发现了什么,这,只是一个记录,比如后面RESTful介绍,我就可以直接引用阮一峰大佬总结好的最佳实践,别人的轮子已经造的挺好了,我为什么还要重复

    起因还是因为某次面试的时候,面试官让我尽可能详细地描述一下“一个请求到结束的全过程”,当时掌握的知识点水平有限,我就简短地回答了一下面试官,但是今天又想起这道面试题,才忽然发现自己的回答太过于笼统,可能当时面试官想针对每个知识点考察一下,所以才有这个系列的由来,日后会慢慢补充,希望各位都能有所收获

    一下是我当年的回答,现在看看还真是避重就轻23333:

    当时回答的概要1.0

    1、用户从客户端发起请求(流程1),客户端首先判断本地缓存(流程2),如果命中缓存则直接响应给用户(流程3),请求结束

    本地缓存

    2、未命中缓存,通过http访问服务器(流程4),一般都会做负载均衡轮训到某一台业务服务器(流程5)

    3、nginx会判断该请求是否缓存,如果命中缓存,或者前端请求的静态资源图片/css/js等文件, 则返回客户端(流程7)

    服务器缓存

    4、动态资源nginx通过fastcgi发送给php-fpm进行解析(流程8、9)

    5、根据不同的业务需求,php直接或通过redis/memcached获取数据进行业务处理(流程10-15),然后返回给nginx(流程16)组装响应报文,发送给客户端

    现在回想起来,这个回答真的只能0分滚粗,很明显的入门级水准,我想当年考官也不是想听这些,正因为如此,我才想填补一下以前的遗憾,把这套知识体系慢慢补全

    按照我现在的理解,当年的面试官有可能想从这一个问题中获取如下的知识点:

    (流程4)http协议的三次握手与四次挥手,tcp/ip模型是什么,RESTful编程风格

    (流程5)select、poll和epoll的实现机制与区别

    (流程8)fastcgi接口是什么

    (流程10)缓存设计方案相关:缓存穿透、缓存雪崩、缓存重建等

    (流程12-15)mysql设计、索引等

    以我现在的水平我就只能暂时理解成想考我这些知识点喽,其他的日后再继续补充

    那么我之后的文章将从三部分开始写起

    1、客户端处理

    2、网络传输

    3、服务端处理

    相关文章

      网友评论

          本文标题:前言

          本文链接:https://www.haomeiwen.com/subject/oifytctx.html