网络七层协议(http,tcp/ip处于哪一层)?
- http属于应用层协议,基于tcp/ip
- tcp/ip属于传输层协议
什么是HTTP?
超文本传输协议
什么是HTTPS?
- HTTPS = HTTP + SSL/TLS, 也就是在HTTP上又加了一层处理加密信息的模块, 传输的数据都是加密后的数据
- SSL
- TLS
HTTP与HTTPS的区别?
- 使用https协议需要申请证书, 需要交费
- http是明文传输, https则是具有安全性的加密传输
- 两者使用的是完全不同的连接方式
HTTPS的加密原理
- 服务器端用非对称加密(RSA)生成公钥和私钥
- 然后把公钥发给客户端, 服务器则保存私钥
- 客户端拿到公钥后, 会生成一个密钥, 这个密钥就是将来客户端和服务器用来通信的钥匙
- 然后客户端用公钥对密钥进行加密, 再发给服务器
- 服务器拿到客户端发来的加密后的密钥后, 再使用私钥解密密钥, 到此双方都获得通信的钥匙
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缓存方案?
- 网络优先:开始总是从网络获取,如果获取失败,从本地获取。
- 本地优先:在一段时间内从本地获取,当超过这个时间,然后重新请求网络数据。
- 混合(智能):打开程序先从本地获取展示,然后请求数据,请求完成后刷新界面。
网友评论