数字天域校招iOS工程师面筋(内附答案)
数字天域
1.问 说一下对http的理解。
答http协议位于应用层,就是超文本传输协议。http连接主要是建立在TCP/IP协议之上的应用,它本质是对数据进行包装,传输还是通过socket连接进行传输。socket本身并不是协议,只是一个函数调用(API),它对TCP/IP协议进行了封装,通过socket我们才能使用TCP/IP协议。socket连接根据TCP或者UDP分为TCP连接或者UDP连接。socket通过TCP连接具体过程:客户端建立socket,调用connect函数,这时会触发三次握手,客户端发出syn(j),服务端收到后回应ack(j+1)+syn(k),客户端收到后再次发出ack(k+1),至此三次握手完成,连接建立成功,可以进行数据传输。在此之前服务端的连接过程是建立socket,绑定到对应端口,监听,等待客户端发起连接请求。断开连接的时候会触发四次挥手操作,多的一次就是服务端在收到客户端的fin请求时,并不能立即关闭连接,只能先返回ack报文,随后真正处理完了工作再返回fin报文,然后客户端收到以后返回ack报文才能真正断开连接。
2.问Socket连接与HTTP连接的区别。
答通常情况下,socket连接就是tcp连接,所以一旦建立连接以后,理论上双方就可以一直收发数据。但是实际上,由于长时间出于非活跃状态的时候,连接会被网络防火墙关闭,所以一般情况下socket会通过轮询保持连接状态。 而HTTP连接主要是通过“请求-响应”的模式进行链接。不仅在请求时需要先建立连接,而且服务端还必须等收到请求以后才能回复数据。在请求结束后,会主动释放连接。
3.问scoket的理解和作用。
答套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:通讯的协议,本地和远地的主机ip地址,本地和远地的协议端口。 应用层通过传输层进行数据通讯时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据,为了区分不同的应用进程和连接,操作系统就为应用程序和TCP/IP协议的交互提供了socket接口 。应用层和传输层可以通过socket接口来区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
#数字天域##校招##iOS工程师##面经#