一、操作系统
1、堆栈
问题:分别从操作系统的内存角度与进程线程角度解释分析堆,栈二者的区别
问题:堆,栈上面都存放是什么内容?这些内容什么时候释放?
2、进程通信
问题:什么是事务?
问题:说说操作系统中进程的通信方式
二、网络
1、网络协议
问题:浏览器输入地址之后,之后的过程?
在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?
2、TCP/UDP
问题:OSI七层模型有哪些,各层次的作用
IP:网络层协议;
TCP和UDP:传输层协议;
HTTP:应用层协议;
SOCKET:TCP/IP网络的API。
TCP/IP代表传输控制协议/网际协议,指的是一系列协议。
TCP和UDP使用IP协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。
TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP都是用来传输其他协议的,它们却有一个显著的不同:TCP提供有保证的数据传输,而UDP不提供。这意味着TCP有一个特殊的机制来确保数据安全的不出错的从一个端点传到另一个端点,而UDP不提供任何这样的保证。
HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。
记住,需要IP协议来连接网络;TCP是一种允许我们安全传输数据的机制,,使用TCP协议来传输数据的HTTP是Web服务器和客户端使用的特殊协议。
Socket 接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,用以开发TCP/IP网络上的应用程序。
问题:TCP的三次握手过程,四次挥手过程,为什么需要三次?
问题:TCP的3次握手和四次挥手;
问题:TCP与UDP的区别
1.基于连接与无连接;TCP连接和断开连接需要3次握手和4次挥手
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;
4.流模式与数据报模式 ;
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。
6.TCP适合传输大量数据,可靠性有保障,UDP只能传少量数据。TCP传输慢,UDP传输快。
问题:timeout的出现是怎么造成的,如何避免
问题:TCP/UDP在安卓里怎么建立连接,管理,建立连接的过程,框架做了什么事
3、HTTP
问题:谈谈 HTTP 中Get 和 Post 方法的区别?
问题:HTTP1.0与2.0的区别;
1.新的二进制格式;
2.连接共享,多路复用;
3.header压缩;
4.重置连接表现更好;
5.Server Push服务端推送
6.流量控制(Flow Control);
7.更安全的SSL。
android和iOS情况类似,http2.0只能在新系统下支持,spdy作为过渡方案仍然有存在的必要。
对于使用webview的app来说,需要基于chrome内核的webview才能支持spdy和http2.0,而android系统的webview是从android4.4(KitKat)才改成基于chrome内核的。
对于使用native api调用的http请求来说,okhttp是同时支持spdy和http2.0的可行方案。如果使用ALPN,okhttp要求android系统5.0+(实际上,android4.4上就有了ALPN的实现,不过有bug,知道5.0才正式修复),如果使用NPN,可以从android4.0+开始支持,不过NPN也是属于将要被淘汰的协议。
问题:HTTP报文结构
1.HTTP请求报文主要由请求行、请求头部、请求正文3部分组成
2.HTTP响应报文主要由状态行、响应头部、响应正文3部分组成
问题:HTTP(80)与HTTPS(443)的区别以及如何实现安全性
问题:URI、URL和URN之间的区别
URI全名为Uniform Resource Indentifier(统一资源标识),用来唯一的标识一个资源,是一个通用的概念,URI由两个主要的子集URL和URN组成;
URL全名为Uniform Resource Locator(统一资源定位),通过描述资源的位置来标识资源;
URN全名为Uniform Resource Name(统一资源命名),通过资源的名字来标识资源,与其所处的位置无关,这样即使资源的位置发生变动,其URN也不会变化;
HTTP规范将更通用的概念URI作为其资源标识符,但是实际上,HTTP应用程序处理的只是URI的URL子集。