想要面试过得去,必须每日一刷题! 关于Android面试这里我就不多讲了,直接上题。一、面试题: 网络型 1、常用的HTTP方法有哪些? GET:用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器。POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。PUT:传输文件,报文主体中包含文件内容,保存到对应URI位置。HEAD:获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。OPTIONS:查询相应URI支持的HTTP方法。 2。TCPIP协议的工作流程: 在源主机上,应用层将一串应用数据传送给传输层。 传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。 在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。 链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。 在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。 网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。 传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向原主机确认信息;若不正确或丢包,则向源主机要求重发信息。 在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。 3。TCP的三次握手理解: 第一次握手:建立连接时,客户端发送syn包(synx)到服务器,并进入SYNSENT状态,等待服务器确认;SYN:同步序列编号(SynchronizeSequenceNumbers)。 第二次握手:服务器收到syn包,必须确认客户的SYN(ackx1),同时自己也发送一个SYN包(syny),即SYNACK包,此时服务器进入SYNRECV状态; 第三次握手:客户端收到服务器的SYNACK包,向服务器发送确认包ACK(acky1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。4。网页中输入url,到渲染整个界面的整个过程,以及中间用了什么协议? 过程:DNS解析TCP连接发送HTTP请求服务器处理请求并返回HTTP报文浏览器解析渲染页面连接结束 协议:DNS:获取域名对应IPTCP:与服务器建立TCP连接IP:建立TCP协议时,需要发送数据,发送数据在网络层使用IP协议0SPF:IP数据包在路由器之间,路由选择使用OSPF协议ARP:路由器在与服务器通信时,需要将ip地址转换为MAC地址,需要使用ARP协议HTTP:在TCP建立完成后,使用HTTP协议访问网页 5。TCP和UDP的区别?安全方面的区别。tcp的安全性没有udp的安全性高,并且udp的漏洞比较少,不容易被一些不法分子利用。传播速度的区别。udp的传送速度也比tcp得快。因为tcp在传送的时候要先建立连接建立连接的时候是比较耗时的,而且在传送数据的时候还要确认一些东西而udp无连接传送数据的。连接对象数量也有区别。tcp是一对一的连接而udp是一对多个或多对多个连接的。 6。HTTP的几种请求方法具体介绍HTTP1。1协议中共定义了八种方法(有时也叫动作),来表明RequestURL指定的资源不同的操作方式HTTP1。0定义了三种请求方法:GET,POST和HEAD方法。HTTP1。1新增了五种请求方法:OPTIONS,PUT,DELETE,TRACE和CONNECT方法 1。OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘’的请求来测试服务器的功能性 2。HEAD 向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。 3。GET 向特定的资源发出请求。注意:GET方法不应当被用于产生副作用的操作中,例如在WebApplication中,其中一个原因是GET可能会被网络蜘蛛等随意访问。Loadrunner中对应get请求函数:weblink和weburl 4。POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和或已有资源的修改。Loadrunner中对应POST请求函数:websubmitdata,websubmitform 5。PUT 向指定资源位置上传其最新内容 6。DELETE 请求服务器删除RequestURL所标识的资源 7。TRACE 回显服务器收到的请求,主要用于测试或诊断 8。CONNECT HTTP1。1协议中预留给能够将连接改为管道方式的代理服务器。 7。HTTP请求和响应报文的格式,以及常用状态码? HTTP请求报文结构:第一部分是请求行,有3个字段:请求方法:(get,post,move,delete等)。URL字段:(访问的URL信息)。HTTP协议版本(主要有http1。0http1。1http2。0三种,其中http1。0属于TCP短连接类型协议,http1。1属于TCP长连接类型协议)。 第二部分是请求头部:由关键字和值配对组成,每行一对,关键字和值用英文冒号:分隔,请求头部的作用是客户端把请求的详细信息告诉服务端,比如:Accept:Imagegif(媒体类型)AcceptLanguage:zhcn(语言类型)Host:www。。com(服务端主机名) 第三部分是空行:空行的作用是通过发送回车符和换行符,告诉服务端请求头部结束。第四部分是请求报文主体:主体包含了客户端要发送给服务端的信息,所以一般post类型的请求报文会有报文主体,get类型是没有的。HTTP响应报文结构:第一部分是起始行,用来说明服务端响应客户端的情况,一般由协议版本号,数字状态码,状态情况组成。在linux系统中可以用curl命令测试。二、结尾 上面所述就是常常被问到的网络型面试题;后续还有算法、数据结构、Java面试、Android面试题。 有关更多面经、核心技术笔记;自己也是从事Android开发5年有余了;整理了一些Android开发技术核心笔记和面经题纲,如有需要的同学请私信我回复核心笔记或面试领取! 咱们下期见!