Android开发面试,妥妥的Android开发经验谈

妥妥的去面试之计算机网络

2019-02-23  本文已影响8人  树獭非懒

1、HTTP和HTTPS有什么区别?

HTTPS简单的说就是HTTP的安全版。HTTP协议传输的数据都是未加密的,也就是明文,这对于传输一些私密的信息来说是不安全的,于是就出现了HTTPS,HTTPS是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP安全。

它们的主要区别:

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

简单说一下HTTPS的工作流程?

  1. 客户端使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
  2. Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
  3. 客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
  4. 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
  5. Web服务器利用自己的私钥解密出会话密钥。
  6. Web服务器利用会话密钥加密与客户端之间的通信。

建议与此博客共同食用 HTTP与HTTPS的区别

客户端如何校验 CA 证书?

CA 证书中的 Hash 值,其实是用证书的私钥进行加密后的值(证书的私钥不在 CA 证书中)。然后客户端得到证书后,利用证书中的公钥去解密该 Hash 值,得到 Hash-a ;然后再利用证书内的签名 Hash 算法去生成一个 Hash-b 。最后比较 Hash-a 和 Hash-b 这两个的值。如果相等,那么证明了该证书是对的,服务端是可以被信任的;如果不相等,那么就说明该证书是错误的,可能被篡改了,浏览器会给出相关提示,无法建立起 HTTPS 连接。除此之外,还会校验 CA 证书的有效时间和域名匹配等。

2.HTTPS的SSL握手建立过程?

假设现在有客户端A和服务器B:

3.HTTP1.1和HTTP1.0的主要区别?

  1. 缓存处理。HTTP1.1加入了更多的缓存头来控制缓存策略;
  2. 带宽的优化。HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了。HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,充分利用了带宽;
  3. 长连接。HTTP1.1支持了长连接,减少了在建立和关闭连接时不必要的消耗和延迟。
  4. 错误通知的管理,在HTTP1.1中新增了24个错误状态响应码;
  5. HTTP1.1的请求消息和响应消息都应支持Host头域。

注意:HTTP长连接指的是TCP的连接

Http1.0是短连接,HTTP1.1默认是长连接,也就是默认Connection的值就是keep-alive。但是长连接实质是指的TCP连接,而不是HTTP连接。TCP连接是一个双向的通道,它是可以保持一段时间不关闭的,因此TCP连接才有真正的长连接和短连接这一说。

4.GET和POST请求方式的主要区别?

  1. GET主要是从指定的资源请求数据。POST是向指定的资源提交要被处理的数据
  2. GET请求提交的数据是放在URL上的,但POST是放在请求体里,所以在GET的数据大小是收到URL的限制,但POST请求就没有限制。
  3. POST请求比GET请求更安全,因为请求数据放在URL上很容易就被第三方盗取,但把数据放在请求体的POST就相对来说更安全。

5.HTTP中Cookie和Session的作用和区别?

作用:

HTTP协议是一种无状态协议,在数据交换完毕后,服务端和客户端的链接就会关闭,每次交换数据都需要建立新的链接。此时,服务器无法从链接上跟踪会话。cookie和session可以跟踪会话,弥补HTTP无状态协议的不足。

区别:

session机制采用的是在服务端保持状态的方案,而cookie机制则是在客户端保持状态的方案。

cookie原理

Session原理:

6.TCP/UDP

有关TCP/UDP的面试问题

建议查看笔者的这篇博客

Android面试必备佳品之TCP与UDP协议

上一篇 下一篇

猜你喜欢

热点阅读