Skip to content

Latest commit

 

History

History
36 lines (27 loc) · 1.91 KB

CommonSense.md

File metadata and controls

36 lines (27 loc) · 1.91 KB

Common Sense

HTTP的请求流程是什么?

  1. 对www.baidu.com这个网址进行DNS域名解析,得到对应的IP地址
  2. 根据这个IP,找到对应的服务器,发起TCP的三次握手
  3. 建立TCP连接后发起HTTP请求
  4. 服务器响应HTTP请求,浏览器得到html代码
  5. 浏览器解析html代码,并请求html代码中的资源(如js、css图片等)(先得到html代码,才能去找这些资源)
  6. 浏览器对页面进行渲染呈现给用户。

注:

  1. DNS域名解析采用的是递归查询的方式,过程是,先去找DNS缓存->缓存找不到就去找根域名服务器->根域名又会去找下一级,这样递归查找之后,找到了,给我们的web浏览器
  2. 为什么HTTP协议要基于TCP来实现? TCP是一个端到端的可靠的面向连接的协议,HTTP基于传输层TCP协议不用担心数据传输的各种问题(当发生错误时,会重传)
  3. 最后一步浏览器是如何对页面进行渲染的?
    a)解析html文件构成 DOM树
    b)解析CSS文件构成渲染树,
    c)边解析,边渲染 ,
    d)JS 单线程运行,JS有可能修改DOM结构

OAuth 2.0

依赖注入DI/IoC

调用者自己不创建依赖,由第三者容器创建并提供依赖的过程叫做依赖注入。

容器:容器负责两件事情:

  1. 绑定服务与实例之间的关系
  2. 获取实例,并对实例进行管理(创建与销毁)

常用的DI容器有,Autofac,Unity,StructureMap,.Net Core中自带的DI容器ServiceCollection订等等。

一般来说,容器为我们提供的实例生命周期包括三种:

  1. Transient: 每一次GetService都会创建一个新的实例
  2. Scoped: 在同一个Scope内只初始化一个实例 ,可以理解为( 每一个request级别只创建一个实例,同一个http request会在一个 scope内)
  3. Singleton :整个应用程序生命周期以内只创建一个实例