06-网络类&加密

作者: 面试题大神 | 来源:发表于2016-11-08 11:53 被阅读181次

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

    • http属于应用层协议,基于tcp/ip
    • tcp/ip属于传输层协议

    什么是HTTP?

    超文本传输协议

    什么是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断点下载的思路

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

    Http与tcp,udp的区别?

    详情
    详情

    • Http是应用层协议,基于TCP/IP,也可以说是传输层协议
    • TCP,UDP是传输层协议

    http都设置哪些header?

    详情链接

    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

    Socket的实现原理及Socket之间是如何通信的

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

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

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

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

    iOS缓存方案?

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

    相关文章

      网友评论

        本文标题:06-网络类&加密

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