2020Android初中级面试题记录

2019Android初中级面试题记录

    • 参考
    • Java
    • Android
    • 网络编程

马上就2020年啦,对工资有想法可以开始准备下年后的跳槽季(手动滑稽)
这几天出去面试了一下,作为一个19届刚刚毕业的小安卓,虽然算起来毕业也才三四个月,但是算起来实习到现在也差不多一年啦,但是发现外面的公司好像还是会把你当应届生看待(好像本来就是),抓住这短暂的时机,加油吧!

参考

厘米姑娘的校招面试题

Java

2019Android初中级面试——Java篇

Android

2020Android初中级面试——Android篇

网络编程

Q:五层模型
参考

Q:四次挥手
参考

Q:了解Post和Get请求吗,说下他们的区别

参考

  • post相对get更安全,因为get请求参数直接在url上,post请求参数放在requestbody中
  • 对参数的数据类型,GET只接受ASCII字符,而POST没有限制
  • “”业界不成文的规定是,(大多数)浏览器通常都会限制url长度在2K个字节,而(大多数)服务器最多处理64K大小的url“
  • GET产生一个TCP数据包;POST产生两个TCP数据包
  • 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
    而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
  • 请求缓存:GET 会被缓存,而post不会

Q:Http请求头里面包含了什么信息?

包含一些基础的请求信息,包括可接受的响应内容类型、能显示的字符集如utf-8以及响应内容等客户端可识别的内容类型列表,还有From请求的地址以及Host服务器域名以及端口号

详情参考

请求头 代表意思 示例
Accept 可接受的响应内容类型 Accept: text/plain
Accept-Charset 浏览器能够显示的字符集 Accept-Charset: utf-8
Accept-Language 可接受的响应内容语言列表 Accept-Language: en-US
From 发起此请求的用户的邮件地址 From: [email protected]
Host 表示服务器的域名以及服务器所监听的端口号。如果所请求的端口是对应的服务的标准端口(80),则端口号可以省略 Host: www.baidu.com:80 Host: www.baidu.com
Connection 是否保持持久连接 Keep-Alive / close
Cookie 由之前服务器通过Set-Cookie(见下文)设置的一个HTTP协议Cookie Cookie: $Version=1; Skin=new;
  • 在http/1.1 中Connection默认开启持久连接,除非设置为close才会关闭TCP连接
  • 一个TCP连接可以发送多个HTTP请求
  • 浏览器对同一个HOST建立的TCP连接有最大数限制,比如chrome最多允许6个

Q:常见的Http请求码

状态码 表达状态
100 表示服务器已接收了客户端请求,客户端可继续发送请求
2xx 成功
200 请求成功
201 提示知道新文件的URL
202 接受和处理、但处理未完成
203 返回信息不确定或不完整
204 请求收到,但返回信息为空
3xx 表示服务器要求客户端重定向
301 访问的资源已转移(永久性转移)
302 访问的资源已转移(暂时性转移)
304 客户端发送带条件的请求,找到资源但是不符合条件
4xx 客户端错误
400 表示客户端请求有语法错误,不能被服务器所理解
401 发送的请求需要http认证
402 服务器已经理解请求,但是拒绝执行它
404 请求的内容不存在
5xx 服务器错误
5xx 表示服务器未能正常处理客户端的请求而出现意外错误
500 表示服务器发生不可预期的错误,导致无法完成客户端的请求
503 表示服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常

Q:HTTP2.0 和 HTTP1.X 的区别

  • 新的二进制格式(Binary Format),HTTP1.x的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认0和1的组合。基于这种考虑HTTP2.0的协议解析决定采用二进制格式,实现方便且健壮。
  • 多路复用(MultiPlexing),即连接共享,即每一个request都是是用作连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面。
  • header压缩,如上文中所言,对前面提到过HTTP1.x的header带有大量信息,而且每次都要重复发送,HTTP2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。
  • 服务端推送(server push),同SPDY一样,HTTP2.0也具有server push功能。

Q:HTTP1.0 和 HTTP 1.1的区别

  • 缓存处理 引入更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match 等更多可供选择的缓存头来控制缓存策略
  • 带宽优化及网络连接使用 请求头引入了range头域,允许只请求资源的某个部分,返回码206(Partial Content)
  • 错误通知的管理,新增24个错误状态响应码
  • Host头处理 请求消息和响应消息都支持Host头域,支持一台物理服务器上存在多个虚拟主机,共享同一个IP地址
  • 默认开启长连接,减少建立和关闭连接的消耗和延迟

你可能感兴趣的:(Android,知识点总结,日记总结)