美文网首页面试题IOSiOS开发
iOS基础面题试之网络篇

iOS基础面题试之网络篇

作者: Stars木木 | 来源:发表于2016-11-09 22:47 被阅读328次

前言:年底了,木木提醒一下正在找工作的小伙伴们(特别是女孩子),当心骗子。找工作的时候一定要注意地点啥的,别上当受骗了~

网络七层协议(http,tcp/ip处于哪一层)?

  • (由下至上)物理层->数据链路层->网络层->传输层->会话层->表示层->应用层
  • http属于应用层协议
  • tcp/ip属于传输层协议

什么是HTTP?

超文本传输协议,是Web联网的基础

什么是HTTPS?

  • HTTPS = HTTP + SSL/TLS, 也就是在HTTP上又加了一层处理加密信息的模块, 传输的数据都是加密后的数据
  • SSL
  • TLS

HTTP与HTTPS的区别?

  • 使用https协议需要申请证书, 需要交费
  • http是明文传输, https则是具有安全性的加密传输
  • 两者使用的是完全不同的连接方式

HTTPS的加密原理

  1. 服务器端用非对称加密(RSA)生成公钥和私钥
  2. 然后把公钥发给客户端, 服务器则保存私钥
  3. 客户端拿到公钥后, 会生成一个密钥, 这个密钥就是将来客户端和服务器用来通信的钥匙
  4. 然后客户端用公钥对密钥进行加密, 再发给服务器
  5. 服务器拿到客户端发来的加密后的密钥后, 再使用私钥解密密钥, 到此双方都获得通信的钥匙

TCP和UDP的区别?

  • 相同点
    • 都属于传输层协议
  • 不同点
    • TCP面向连接, 提供可靠传输, UDP面向无连接, 无法提供可靠性传输
    • TCP必须要和服务器交互,需要和服务器进行三次握手和四次挥手

GET和POST的区别

  • GET通常用于从服务器获取数据,POST通常用于向服务器发送数据
  • 相同点:
    • 都可以用于请求数据
  • 不同点:
    • 上传参数的方式不一样
      • GET的参数是追加到url后面
      • POST的参数是添加在HttpBody中的
    • 对上传的参数的大小限制不一样
      • GET有限制
      • POST没有限制
    • 安全性不一样
      • POST比GET更安全
    • 效率不一样
      • GET效率高于POST

md5和base64是什么,有什么区别?

  • md5是不可逆的加密算法,可以把任意长的字符串加密为固定长度的字符串
  • base64是可逆的加密算法, 一般用于url的编码

简单谈谈UDP和TCP/(http和https)

  • 两者都是传输层的协议, 可以应用于即时通讯
  • 两者的区别
    • TCP面向连接,安全可靠,
    • TCP需要和服务器的Socket对接, 连接过程需要三次握手
    • UDP面向无连接, 不可靠,
    • UDP不需要服务器也能进行数据传输, 适合用于高速传输和实时性较高的广播通信

NSURlConnection断点下载的思路

  • 先判断是否已经下载完成
  • 已下载完成的情况:
  • 未完成下载的情况:
    • 若根本没下载过,则从头下载
    • 若下载了一部分,先读取下载了多少数据,在告诉服务器从哪个地方开始继续下载
    • 核心代码

SSL加密流程

  • 服务器用非对称加密(RSA)产生一对公钥和私钥
  • 服务器将公钥发送给客户端(即使消息被拦截也需要用私钥解密,私钥不会离开服务器)
  • 客户端收到公钥后,用对称加密产生一个密钥,并且用公钥加密传回给服务器
  • 服务器用私钥解密,得到密钥,这个密钥就是以后通信的钥匙

网络加密方式有哪些,各自的原理

  • md5(哈希算法):把任意长度的字符串加密成一个128bit的大整数,并且是不可逆的
  • RSA(非对称算法加密):产生一对非对称的公钥和私钥,公钥加密,私钥解密。私钥加密,公钥解密
  • AES(对称加密):加密和解密的密钥是同一个
  • base64(现代密码学的基础):原本8 bit一组的数据改为6bit一组,不足的地方补0,每两个0用一个 = 表示

说下你对Socket的理解?

  • Socket就是对TCP/IP协议的封装,一组接口

对xmpp的理解

  • xmpp是基于XML流传输协议,它用于即使消息以及在线现场侦探。
  • XMPPStream用于连接服务器,设置主机名,服务器域名,设置代理,注册、登陆和发消息所有时间的回调。
  • 通过jid与服务器进行连接。连接成功做登陆或注册的操作。用XMPPPresence做上线的操作。
  • 通过发送命令获取好友。
  • XMPPMessage类做消息的发送与消息的获取。
  • XMPPRoster负责好友的添加,好友的获取。
  • XMPPRoom 提供多用户的聊天支持

客户端安全性处理方式?

  • 敏感数据加密,存储到keyChain

网络图片处理问题中怎么解决一个相同的网络地址重复请求的问题?

  • 图片的名字就是url的md5.所以判断url的md5是否存在本地即可

现在有一个资源网址(资源是什么未知),要请求这个资源你会考虑哪些问题?

  • 根据响应头判断数据类型(conten-type)
  • 如果文件比较大,可以考虑断点下载
  • 子线程中下载
  • 如果加密了要进行相应的解密

客户端安全性处理方式?

  • 敏感数据加密,存储到keyChain

iOS缓存方案?

  • 网络优先:开始总是从网络获取,如果获取失败,从本地获取。
  • 本地优先:在一段时间内从本地获取,当超过这个时间,然后重新请求网络数据。
  • 混合(智能):打开程序先从本地获取展示,然后请求数据,请求完成后刷新界面。

仅供木木学习,以及有需要的伙伴们阅读~可转载,不可复制粘贴哟~

相关文章

  • iOS基础面题试之网络篇

    前言:年底了,木木提醒一下正在找工作的小伙伴们(特别是女孩子),当心骗子。找工作的时候一定要注意地点啥的,别上当受...

  • 整理出:iOS某些大厂以及小公司的面试题!

    目录1、iOS 基础题2、iOS 实战题3、网络题4、计算机系统题5、设计模式题6、架构 & 设计题7、数据结构&...

  • iOS之网络编程(二:Scoket)

    上一篇写了iOS之网络编程(一:基础HTTP/HTTPS与TCP/UDP),这篇就重点说说Socket。注:网上关...

  • 文章汇总

    ios iOS 网络篇 网络基础总结 支付宝集成 iOS支付宝支付集成 - demo例子集 - 博客园 理解 iO...

  • iOS网络篇-网络基础

    项目中常见的客户端与服务端通信 可通信的内容(即访问服务器资源) 图片,文本,语音,视频,音乐 URL:决定了和谁...

  • iOS 基础网络篇

    多线程 NSThread GCD队列并发队列全局队列自己创建串行队列自己创建主队列任务:block函数sync:同...

  • iOS 动画基础总结篇

    iOS 动画基础总结篇 iOS 动画基础总结篇

  • iOS进阶系列之调优篇

    (原文地址](http://wp.me/p7OxSd-5t)iOS进阶系列之调优篇上一篇文章iOS进阶系列之基础篇...

  • iOS动画(三):核心动画中缩放和旋转(Swift)

    参考:第五篇:CABasic Animation。iOS动画系列之五:基础动画之缩放篇&旋转篇 原理和上一篇是相同...

  • iOS进阶系列之基础篇

    原文地址iOS进阶系列之基础篇 概述 基础篇包含的范围较广,是一个iOS开发者必须具备的知识。包含了以下方面:OC...

网友评论

本文标题:iOS基础面题试之网络篇

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