Android 面试 计算机网络知识

1.. 给我介绍5层网络模型。

应用层,传输层,网络层,数据链路层和物理层

五层模型

  1. 物理层:主要作用是定义物理设备如何传输数据(光缆,网线)
  2. 数据链路层:为通讯实体间建立数据链路连接
  3. 网络层:为数据在节点之间传输创建逻辑链路
  4. 传输层:数据的传输都是在这层定义的,数据过大分包,分片。
  5. 应用层:为应用软件提供了很多服务,构建于协议之上。

2.Http/Https协议工作在哪一层?

 HTTP是应用层协议,Tcp,UDP是传输层协议

3.TCP/UDP协议工作在哪一层?Tcp,UDP是传输层协议

4.给我说说三次握手和四次挥手

TCP为什么要进行三次握手:因为网络传输有延迟,客户端发送请求到服务器端要求建立连接,如果服务器端直接返回的话可能会产生丢包的情况导致客户端接收不到数据,客户端会因为超时就关闭了,可能就去发送新的请求了,然而服务端并不知道丢包导致客户端没有接收数据,服务端的socket端口就一直开着,造成了额外的开销。所以需要三次握手确认这个过程。

5.什么是请求头 & 响应头 ? 说说请求头中一些重要的字段。

请求报头; Host  请求的主机名,允许多个域名同处以IP地址 即 虚拟主机。

User-Agent 发送请求的浏览器类型,操作系统等信息。

Accept:客户端可识别的内容类型列表,用于指定客户端接收哪些类型的信息。

Connection  允许客户端和服务器指定的与请求/响应连接有关的选项/

Transfer-Encoding 报文采用了什么编码方式。

响应报头 Location 重定向接收者到一个新的位置。

server 包含服务器用来处理请求的系统信息。

content-type 发送给接受者的实体正文的媒体类型。

content-length实体正文的长度 

content-language 自然语言

Last-modified  最后一次修改日期和时间

Expires 响应过期的时间和日期。

6.什么是Cookie & Session。

Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息。如何识别特定的客户呢?cookie就可以做到。每次HTTP请求时,客户端都会发送相应的Cookie信息到服务端。它的过期时间可以任意设置,如果你不主动清除它,在很长一段时间里面都可以保留着,即便这之间你把电脑关机了。

Session是在无状态的HTTP协议下,服务端记录用户状态时用于标识具体用户的机制。它是在服务端保存的用来跟踪用户的状态的数据结构,可以保存在文件、数据库或者集群中。在浏览器关闭后这次的Session就消失了,下次打开就不再拥有这个Session。其实并不是Session消失了,而是Session ID变了,服务器端可能还是存着你上次的Session ID及其Session 信息,只是他们是无主状态,也许一段时间后会被删除。

  • 7.知道什么是心跳检测吗?

心跳检测在网络程序中常常被用到,在客户端和服务器之间暂时没有数据交互时,就需要心跳检测对方是否存活。

  • 8.Http和Https的区别?

  •  HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

      HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

      HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

  •  HTTPS和HTTP的区别主要如下:

      1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

      2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

      3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

      4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

9..加密协议TLS/SSL加密过程是怎样的?

HTTP+SSL = HTTPS  加密方法就是一种对称加密算法,对称加密算法也是我们日常最常见的加密算法。这种算法?只有一把,加密解密都用同一把钥匙 :公钥加密的密文只能用私钥解密,私钥加密的密文只能用公钥解密。

 

一个SSL/TLS 握手过程需要协商的信息包括:

 1 协议的版本号;

 2 加密算法,包括非对称加密算法、动态密钥算法;

 3 数字证书,传输双方通过交换证书及签名校验对彼此进行鉴权;

 4 动态密钥,传输数据过程使用该密钥进行对称加解密,该密钥通过非对称密钥进行加密传输。

1. 客户端发出一个 client hello 消息,携带的信息包括:

    所支持的SSL/TLS 版本列表;支持的与加密算法;所支持的数据压缩方法;随机数A;

2. 服务端响应一个 server hello 消息,携带的信息包括:

    协商采用的SSL/TLS 版本号;会话ID;随机数B;服务端数字证书 serverCA;

    由于双向认证需求,服务端需要对客户端进行认证,会同时发送一个 client certificate request,表示请求客户端的证书;

3. 客户端校验服务端的数字证书;校验通过之后发送随机数C,该随机数称为pre-master-key,使用数字证书中的公钥加密后发出;

    由于服务端发起了 client certificate request,客户端使用私钥加密一个随机数 clientRandom随客户端的证书 clientCA一并发出;

4. 服务端校验客户端的证书,并成功将客户端加密的随机数clientRandom 解密;

    根据 随机数A/随机数B/随机数C(pre-master-key) 产生动态密钥 master-key,加密一个finish 消息发至客户端;

5. 客户端根据 同样的随机数和算法 生成master-key,加密一个finish 消息发送至服务端;

6. 服务端和客户端分别解密成功,至此握手完成,之后的数据包均采用master-key进行加密传输。

  • 10.什么是DNS & 作用是什么 &工作机制? 

域名系统(DNS)是因特网的电话簿。人类通过域名在线访问信息,如nytimes.com或espn.com。Web浏览器通过Internet协议(IP)地址进行交互。DNS将域名转换为IP地址以便浏览器可以加载Internet资源。

DNS如何工作?

DNS解析过程涉及将主机名(例如www.example.com)转换为计算机友好的IP地址(例如192.168.1.1)。Internet上的每个设备都会获得一个IP地址,该地址是查找相应Internet设备所必需的 - 就像使用街道地址查找特定的家庭一样。当用户想要加载网页时,必须在用户键入其Web浏览(example.com)和找到example.com网页所需的机器友好地址之间进行翻译。

为了理解DNS解析背后的过程,了解DNS查询必须在其间传递的不同硬件组件非常重要。对于Web浏览器,DNS查找“在幕后”发生,除了初始请求之外,不需要来自用户计算机的交互。

  • 11.浏览器访问一个url网址所经历的过程是什么?

  • 客户端获取URL - > DNS解析 - > TCP连接 - >发送HTTP请求 - >服务器处理请求 - >返回报文 - >浏览器解析渲染页面 - > TCP断开连接

12.Socket是协议吗?WebSocket是协议吗?它们的区别是什么?

socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信。socket是一组接口,在设计模式中,socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在socket接口后面,对用户来说,一组简单的接口就是全部,让socket去组织数据,以符合指定的协议。
WebSocket协议是基于TCP的一种新的网络协议,和http协议一样属于应用层协议,它实现了浏览器与服务器全双工(full-duplex)通信,也就是允许服务器主动发送信息给客户端。我在实现二维码扫描登录时曾使用过,有了它就不需要通过轮询或者建立长连接的方式来使客户端实时获取扫码状态,因为当扫码后,服务器端可以主动发送消息通知客户端。

  • 13.Json解析方式有哪些?比较它们的优劣势。

 解析JSON字符串  FastJson Gson 

14.XML解析方式有哪些?比较它们的优劣势。

DOM解析:
              优点:
      1、形成了树结构,有助于更好的理解、掌握,且代码容易编写。
      2、解析过程中,树结构保存在内存中,方便修改。
    缺点:
      1、由于文件是一次性读取,所以对内存的耗费比较大。
      2、如果XML文件比较大,容易影响解析性能且可能会造成内存溢出。

SAX解析:
          优点:
      1、采用事件驱动模式,对内存耗费比较小。
      2、适用于只处理XML文件中的数据时。
    缺点:
      1、编码比较麻烦。

      2、很难同时访问XML文件中的多处不同数据。

JDOM解析
    特征:
      1、仅使用具体类,而不使用接口。

      2、API大量使用了Collections类。

DOM4J解析
     特征:
    1、JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能。
    2、它使用接口和抽象基本类方法。
    3、具有性能优异、灵活性好、功能强大和极端易用的特点。
    4、是一个开放源码的文件

  • 15.http1.x & http 2.0区别是什么?

  • 16.说说HTTP缓存的原理。

  •  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值