美文网首页
2019-02-20问题整理

2019-02-20问题整理

作者: 上官曙光 | 来源:发表于2019-02-20 16:28 被阅读2次

    1,homebrew:是一款Mac OS平台下开放源代码的软件管理系统.(基于Ruby语言开发的).,homebrew可以安装,卸载,查找,更新软件
    2,unix和linux都是操作系统的内核,Mac上安装的是linux操作系统,linux操作系统是免费的,而unix是商业的.Linux最开始也是基于unix开发的.
    3,操作系统:管理计算机硬件和软件资源的系统软件,也是计算机系统的内核.是用来管理配置内存,控制输入输出设备,操作网络及文件等.
    4,TCP协议基于连接可靠的协议,所以传输效率比UDP低,一般用于文件传输,发送或接受邮件.UDP协议基于无连接的不可靠协议,仅仅将数据发送给对方,因此效率比TCP高属于一般用于即时通讯(QQ聊天(对数据准确性和丢包要求低,但速度必须快),在线视频(偶尔丢帧),网络语音电话(偶尔断音)).TCP的应用场景:当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。
    在日常生活中,常见使用TCP协议的应用如下:浏览器用的HTTP,FlashFXP用的FTP,Outlook用的POP、SMTP,Putty用的Telnet、SSH,QQ文件传输等.UDP的应用场景;当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。 比如,日常生活中,常见使用UDP协议的应用如下:QQ语音,QQ视频
    TFTP

    TCP/IP是个协议组,可分为三层:网络层,传输层和应用层
    在网络层有IP协议,ICMP协议,ARP协议,RARP协议和BOOTP协议.
    在传输层中有:TCP协议与UDP协议.
    在应用层有:通过TCP协议来通信的应用层协议包括FTP,HTTP,TELNET,SMTP协议. 通过UDP协议来通信的应用层协议包括DNS,TFTP等;
    短连接
    例如普通的web请求,在三次握手之后建立连接,发送数据包并得到服务器返回的结果之后,通过客户端和服务端的四次握手进行关闭断开。适用于网页浏览等数据刷新频度较低的场景。
    连接->数据传输->关闭连接HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,单任务结束后就中断连接.也可以这样说:短连接是指Socket连接后发送后接收完数据后马上断开连接.
    长连接
    区别与短连接,由于三次握手连接及四次握手断开,在请求频繁的情况下,链接请求和断开请求开销较大,影响效率。采用长连接方式,执行三次握手链接后,不断开链接,保持客户端和服务端通信,直到服务器超时自动断开链接,或者客户端主动断开链接。适用于客户端和服务端通信频繁的场景,例如聊天室,实时游戏。
    连接->传输数据->保持连接->传输数据->….->关闭连接长连接指建立socket连接后不管是否使用都保持连接,但安全性较差.
    长/短连接 是针对TCP传输层的概念,也就是,TCP连接才有长/短连接之说。
    短连接是指通讯双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。
    长连接指在一个TCP连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要TCP keep alive。TCP keep alive 的两种方式:

    1. 应用层面的心跳机制
      自定义心跳消息头 : 一般客户端主动发送, 服务器接收后进行回应(也可以不回应).
    2. TCP协议自带的 keep alive:打开keep-alive功能即可. 具体属性也可以通过API设定.
      TCP KeepAlive 是用于检测TCP连接的状态,而心跳机制有两个作用:一是检测TCP的状态,二是检测通讯双方的状体。
      考虑一种情况,某台服务器因为某些原因导致负载超高,CPU 100%,无法响应任何业务请求,但是使用 TCP 探针则仍旧能够确定连接状态,这就是典型的连接活着但业务提供方已死的状态,对客户端而言,这时的最好选择就是断线后重新连接其他服务器,而不是一直认为当前服务器是可用状态,一直向当前服务器发送些必然会失败的请求。
      从上面我们可以知道,KeepAlive 并不适用于检测双方存活的场景,这种场景还得依赖于应用层的心跳。应用层心跳有着更大的灵活性,可以控制检测时机,间隔和处理流程,甚至可以在心跳包上附带额外信息。从这个角度而言,应用层的心跳的确是最佳实践。

    事实上,HTTP keep-alive与TCP keep-alive 是两个完全没有关系的东西。

    Q1 : HTTP Socket TCP UDP都是什么?HTTP 全称是超文本传输协议,是一个应用层的协议。用于客户端和服务端之间进行通讯。TCP/UDP 都是传输层协议。TCP是可靠的,我们常说的三次握手连接,四次握手断开都是说的TCP。而UDP是不可靠的。Socket 则是从传输层抽象出来的接口层。
    Q2 : HTTP连接和Socket连接有什么区别?分别在什么情况下使用?HTTP 是基于TCP的短连接。需要经过三次握手建立连接,且无法保持始终连接。Socket 是长连接。基于TCP的Socket连接,一旦建立三次握手,除非一方主动断开,否则连接状态一直保存。也可以基于UDP进行Socket连接。HTTP连接,服务端无法主动发消息,采用的是'请求-响应'机制。客户端没有发消息给服务端,服务端无法推送消息给客户端。Socket连接,一方可以随时向另一方发起会话。双方不需要时刻保持连接在线用HTTP。eg : 客户端资源获取、上传文件等。即时通讯应用需要用Socket连接。eg : 微信、苹果的APNs等。
    Q3 : HTTPS是什么?和HTTP有什么区别?HTTPS就是HTTP加上SSL/TLS。TLS(Transport Layer Security)传输层安全协议,作用是在传输层对网络连接加密。SSL就是TLS的前身。HTTP端口是80,是无状态的。HTTPS端口是443,是可以进行加密传输、身份认证的网络协议。
    5.卸载app后重装还会出现用户信息问题
    保留部分文件的删除称为卸载.
    删除应用,则该目录下的所有的文件都会被删除。而如果选择卸载,仅仅是保留了沙盒路径下的Documents和Library/perferences的文件。其他文件文件夹下的文件则都被删除了。
    ios 设置-通用-存储空间-点击应用,有卸载应用和删除应用 两个选项,卸载应用会保留数据,删除应用会删除所有数据。
    icloud(云存储,沙盒数据备份)
    所以很多用户在不抹机的情况下重新安装app,会自动登录.

    相关文章

      网友评论

          本文标题:2019-02-20问题整理

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