美文网首页
春招笔记(二)其他

春招笔记(二)其他

作者: 松爱家的小秦 | 来源:发表于2019-03-08 22:51 被阅读0次

1.死锁的四个必要条件

(1) 互斥条件:一个资源每次只能被一个进程使用。

(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。

(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。

(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

2.TCP的3次握手和四次挥手;TCP与UDP的区别;

三次握手的原因

第三次握手是为了防止失效的连接请求到达服务器,让服务器错误打开连接。

首先 B 处于 LISTEN(监听)状态,等待客户的连接请求。

A 向 B 发送连接请求报文,SYN=1,ACK=0,选择一个初始的序号 x。

B 收到连接请求报文,如果同意建立连接,则向 A 发送连接确认报文,SYN=1,ACK=1,确认号为 x+1,同时也选择一个初始的序号 y。

A 收到 B 的连接确认报文后,还要向 B 发出确认,确认号为 y+1,序号为 x+1。

B 收到 A 的确认后,连接建立。

四次挥手的原因

客户端发送了 FIN 连接释放报文之后,服务器收到了这个报文,就进入了 CLOSE-WAIT 状态。这个状态是为了让服务器端发送还未传送完毕的数据,传送完毕之后,服务器会发送 FIN 连接释放报文。

A 发送连接释放报文,FIN=1。

B 收到之后发出确认,此时 TCP 属于半关闭状态,B 能向 A 发送数据但是 A 不能向 B 发送数据。

当 B 不再需要连接时,发送连接释放报文,FIN=1。

A 收到后发出确认,进入 TIME-WAIT 状态,等待 2 MSL(最大报文存活时间)后释放连接。

B 收到 A 的确认后释放连接。

TCP与UDP的区别;

用户数据报协议 UDP(User Datagram Protocol)是无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),支持一对一、一对多、多对一和多对多的交互通信。

传输控制协议 TCP(Transmission Control Protocol)是面向连接的,提供可靠交付,有流量控制,拥塞控制,提供全双工通信,面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块),每一条 TCP 连接只能是点对点的(一对一)。

3.HTTP协议;HTTP1.0与2.0的区别;HTTP报文结构;

HTTP/1.1 通过 Cache-Control 首部字段来控制缓存。

HTTP/1.x 实现简单是以牺牲性能为代价的:

客户端需要使用多个连接才能实现并发和缩短延迟;

不会压缩请求和响应首部,从而导致不必要的网络流量;

不支持有效的资源优先级,致使底层 TCP 连接的利用率低下。

HTTP/2.0 将报文分成 HEADERS 帧和 DATA 帧,它们都是二进制格式的。

在通信过程中,只会有一个 TCP 连接存在,它承载了任意数量的双向数据流(Stream)。

一个数据流(Stream)都有一个唯一标识符和可选的优先级信息,用于承载双向信息。

消息(Message)是与逻辑请求或响应对应的完整的一系列帧。

帧(Frame)是最小的通信单位,来自不同数据流的帧可以交错发送,然后再根据每个帧头的数据流标识符重新组装。

HTTP/2.0 在客户端请求一个资源时,会把相关的资源一起发送给客户端,客户端就不需要再次发起请求了。例如客户端请求 page.html 页面,服务端就把 script.js 和 style.css 等与之相关的资源一起发给客户端。

4.HTTP与HTTPS的区别以及如何实现安全性;

HTTPS 并不是新协议,而是让 HTTP 先和 SSL(Secure Sockets Layer)通信,再由 SSL 和 TCP 通信,也就是说 HTTPS 使用了隧道进行通信。

通过使用 SSL,HTTPS 具有了加密(防窃听)、认证(防伪装)和完整性保护(防篡改)。

相关文章

  • 春招笔记(二)其他

    1.死锁的四个必要条件 (1) 互斥条件:一个资源每次只能被一个进程使用。 (2) 请求与保持条件:一个进程因请求...

  • 【备战春招/秋招系列】初出茅庐的程序员该如何准备面试?

    备战春招/秋招系列文章回顾: 【备战春招/秋招系列】程序员的简历就该这样写 这是【备战春招/秋招系列】的第二篇文章...

  • 春招笔记

    Linux支持的IPC:管道,消息队列,共享内存,信号量,Socket。只有Socket支持CS模式,其他的也可以...

  • 春招笔记

    1. Parcelable和Serializable 俩者异同 1、Serializable在序列化的时候会产生...

  • 踩坑攀登者:mysql/innodb的锁、隔离与MVCC

    2020春招精选:20道JVM面试重点问题及十大模块知识点笔记! 2020春招必备:MySQL(20)与Redis...

  • 春招准备笔记

    先说一点冠冕堂皇的废话,好的目标是成功的一半。不止是春招,所有职业规划或是求职的流程都可以遵循这个套路:自我定位-...

  • 春招笔记 哈希

    1. 表的查找效率取决于散列函数、处理冲突的方法和装填因子。显然,冲突的产生概率与装填因子(表中记录数与表长之比...

  • 春招笔记 堆

    1. 堆是完全二叉树,根据父节点和子节点的关系,可以分为大根堆和小根堆。 大根堆的父节点比它的所有子节点大,小根...

  • 春招笔记(十四)

    1.是否熟悉Android jni开发,jni如何调用java层代码 在Android开发中,使用NDK开发的需求...

  • 京东、字节跳动、同程艺龙、众安保险校招面经

    概述: 本期是博主的2019年春招面经,之前发在其他平台上,后期整理了一下,希望对参加2020年春招的同学有所帮助...

网友评论

      本文标题:春招笔记(二)其他

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