个人总结八股文的背诵方案

个人总结八股文的背诵方案

URL到显示网页的过程

  1. 浏览器解析URL,获取协议,主机名,端口号,路径等信息,并通过DNS查询将主机名转换为对应的IP地址
  2. 浏览器与服务器建立TCP,进行三次握手。
  3. 浏览器想服务器发送HTTP请求,包含请求方法 ,请求头,请求体等信息
  4. 服务器接收并处理HTTP请求,根据请求的路径和参数返回响相应的HTTP响应,包含状态码,响应头,响应体等信息
  5. 浏览器接收并解析HTTP响应,根据状态码和响应头判断响应的结果和类型
  6. 浏览器根据响应体的内容进行渲染和显示。如果响应体是html文档,浏览器会生成DOM树和CSSOM树,然后生成渲染树,进行布局和绘制。如果响应体是js或css文件,则浏览器会执行js代码或应用css样式。如果响应体是图片或其他资源,浏览器会下载并显示。
  7. 浏览器会根据情况选择关闭或保持TCP连接,进行四次挥手。

三次握手

  1. 客户端随机初始化序号seq=x,同时把 SYN 标志位设置为1,表示 SYN 报文。并发送给服务器
  2. 服务端收到客户端的 SYN 报文后,随机初始化序号seq=y,ack=x+1;并将SYN 和 ACK 标志位都设置为1。发给客户端
  3. 客户端收到服务器的报文后,ack=y+1,seq = x+1。并发给服务器
    seq=x,SYN=1;`` seq=y,ack=x+1,SYN=ACK=1; `` ack=y+1,seq = x+1。

为什么不能两次或四次?

  1. 如果只有两次握手,那么就无法保证双方都能接收数据。例如,如果客户端发送了连接请求后,由于网络延迟或其他原因,没有收到服务器的连接确认,那么客户端就不知道服务器是否同意连接,也不知道服务器的初始序列号。如果此时客户端开始发送数据,可能会导致服务器无法正确处理或丢弃数据。
  2. 如果有四次或更多次握手,那么就会浪费时间和资源。例如,如果在第二次握手后,服务器再向客户端发送一个额外的确认,那么这个确认就是多余的,因为客户端已经在第三次握手中确认了服务器的初始序列号。多余的握手会增加网络负担和延迟,并占用双方的缓存空间。

四次挥手

  1. 客户端发送SYN=1给服务器,之后客户端进入 FIN_WAIT_1 状态。
  2. 服务器发送ACK给客户端,接着服务端进入 CLOSED_WAIT 状态。客户端收到服务端的 ACK 应答报文后,之后进入 FIN_WAIT_2 状态。
  3. 服务端处理完数据后,向客户端发送 FIN 报文,之后服务端进入 LAST_ACK 状态。
  4. 客户端收到服务端的 FIN 报文后,回一个 ACK 应答报文,之后进入 TIME_WAIT 状态。
    服务器收到了 ACK 应答报文后,就进入了 CLOSED 状态,至此服务端已经完成连接的关闭。
    客户端在经过 2MSL 一段时间后,自动进入 CLOSED 状态,至此客户端也完成连接的关闭。

计算机网络分层模型

  1. 物理层:物理媒介(双绞线、光纤和无线电波)上传输比特流,并定义了物理设备的接口标准、电气特性和编码方式等。IEEE
  2. 数据链路层:相邻节点之间传输帧,并提供差错控制和流量控制。PPP、SLIP
  3. 网络层:将数据报从源主机发送到目的主机,并提供路由选择和拥塞控制。IP、ICMP、ARP
  4. 传输层:传输报文段,进程之间的通信。TCP和UDP
  5. 会话层:建立会话、session验证,断点传输。SMTP、DNS
  6. 表示层:数据转换、加密、压缩。TELNET、SNMP
  7. 应用层:用户界面的交互。FTP,HTTP、NFS

上述是OSI七层模型,TCP/IP五层模型:应用层,表示层和会话层合并为应用层;TCP/IP四层模型:物理层和数据链路层合并为网络接口层

TCP通信和UDP通信各自的优缺点

  1. TCP优点:可靠稳定,TCP通过三次握手建立连接,通过确认、重传、窗口、拥塞机制等保证数据无差别、不丢失、不重复、按序到达。
    缺点:效率低,占用系统资源高,易被攻击。面向连接只能是点到点通信。
  2. UDP优点:效率高且安全。面向报文,可以进行一对多和多对多通信。

进程和线程的区别,加一点协程

  1. 资源:进程是资源分配的基本单位,而线程是操作系统调度和执行的基本单位。进程有自己独立的地址空间和资源,而线程共享所属进程的资源,但有自己的栈和局部变量。
  2. 开销:进程的创建和销毁都需要向操作系统申请或释放资源,涉及到保存和恢复上下文,开销较大。线程的创建和销毁只需要在用户空间内进行,涉及到部分上下文的切换,开销较小。
  3. 通信:进程间通信需要借助操作系统提供的 IPC 机制,如管道、信号、消息队列等。而线程间可以直接读写同一进程中的数据,只需要同步控制即可。
  4. 稳定性:进程之间是相互隔离的,一个进程崩溃不会影响其他进程的运行;线程之间是相互依赖的,一个线程崩溃可能导致整个进程终止。
  5. 协程是一种用户态的轻量级线程,由程序员控制其创建、调度和销毁,不需要操作系统的支持。协程之间是相互独立的,一个协程崩溃不会影响其他协程的运行。

进程切换的过程

  1. 保存当前运行进程的上下文,包括程序计数器、栈指针、寄存器、内核数据结构等信息,以便下次恢复执行。
  2. 根据调度算法选择一个就绪态的进程作为切换的进程。
  3. 恢复第一步保存的上下文,包括程序计数器、栈指针、寄存器、内核数据结构等信息。
  4. 转移CPU的控制权给被选中的进程,开始执行。

进程间通信方式,线程多了全局变量

  1. 管道:半双工通信方式,数据只能在父子进程间单向流动。
  2. 命名管道:有路径名关联,可以在任意进程间通信。
  3. 消息队列:存放在内核中的消息链表,支持多个进程间通信
  4. 信号量:实现进程间的互斥与同步
  5. 共享内存:多个进程直接访问同一块物理内存空间。

陈述http

  1. HTTP,全称为 HyperText Transfer Protocol,即为超文本传输协议。是互联网应用最为广泛的一种网络协议
    所有的 www 文件都必须遵守这个标准。
  2. http特性:无连接无状态、构建于 TCP/IP 协议之上、默认端口号80、分为请求和响应两个部分。
  3. 请求:GET,POST,PUT,DELETE
  4. 响应:200 OK、301永久重定向、302临时重定向、304未修改、400客户端语法错误、401未授权、403Forbidden 、404 Not Found、500服务器内部错误、503服务器暂时错误
  5. http缺点:通信使用明文,内容可能被窃听。
    通信双方的身份无法得到认证,身份可能遭遇伪装。
    无法验证报文的完整性。
  6. https可以简单的理解为:https = http + 加密 + 认证 + 完整性保护。

http有哪些版本?每个版本分别加了哪些新特性?

  1. HTTP 0.9:是第一个版本的HTTP协议,已过时。组成简单,只有GET请求,且不支持请求头,只支持纯文本。HTTP 0.9具有典型的无状态性,每个事务独立进行处理,事务结束时就释放这个连接。
  2. HTTP 1.0:
    引入了请求方法,GET、HEAD、POST,开始支持客户端通过POST方法向Web服务器提交数据
    引入了内容协商,用于让客户端和服务器协商最合适的内容格式,如语言、字符集、编码等。
    引入了状态码、头部字段、短连接和缓存机制。
  3. HTTP 1.1:
    引入了请求方法,OPTIONS,PUT, DELETE, TRACE, CONNECT方法
    引入了管道机制,允许客户端在收到上一个响应之前就发送下一个请求,进一步减少了网络延迟。
    引入了分块传输编码,将内容分成多个块发送,每个块包含自己的大小信息。
    完善缓存机制,加入了一些cache的新特性,引入了实体标签,一般被称为e-tags,新增更为强大的Cache-Control头。
    引入了持久连接、引入虚拟主机:在同一个IP地址和端口上提供多个不同域名的服务
  4. HTTP2.0
    引入了二进制分帧,信息分割为更小的帧,并采用二进制编码,从而降低了报文解析的复杂度和开销。
    引入了多路复用,在同一个TCP连接上同时发送和接收多个请求和响应
    引入了首部压缩,通过HPACK算法对请求和响应的头部字段进行压缩。
    引入了服务器推送,服务器可以在客户端请求之前主动发送数据,预加载一些客户端可能需要的资源。
    引入了优先级和流量控制,即客户端和服务器可以为不同的请求设置优先级,让重要的请求优先处理,同时可以控制数据流的速度,避免拥塞和浪费。
  5. HTTP 3.0
    使用QPACK算法对HTTP头部进行压缩,提高了编码效率和压缩率。
    使用QUIC协议代替TCP协议,实现了无序、并发的字节流传输,解决了队头阻塞问题。
    0-RTT握手:允许客户端在第一次请求时就发送数据。

ARQ协议

  1. 自动重传请求协议,是一种用于实现可靠数据传输的协议。它通过使用确认和超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送。
  2. 停止等待ARQ协议:是指发送方每发送一个分组就停止发送,等待接收方的确认。如果发送方在超时时间内没有收到确认,就重发该分组。这种协议简单易实现,但信道利用率较低。
  3. 连续ARQ协议:是指发送方可以连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。这样可以提高信道利用率,但也增加了复杂性和开销。连续ARQ协议又分为回退N帧ARQ协议和选择重传ARQ协议。
  4. 回退N帧ARQ协议:某个分组出错或丢失,就丢弃该分组及其后续的分组。选择重传ARQ协议:某个分组出错或丢失,就缓存该分组之后正确接收的分组,并对每个正确接收的分组单独发送选择性确认。

说一下Chrome的进程架构

  1. 浏览器进程:负责界面显示、用户交互、子进程管理,同时提供存储等功能。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值