2020年美团校招面经汇总.pdf

所需积分/C币:17 2019-10-21 13:54:18 1.99MB PDF
27
收藏 收藏
举报

2020年校招面经总结,包含牛客大家的面试问题汇总和答案。
状态行:主要给出响应HTTP协议的版本号、响应返回状态码、响应描述 6、输入ur之后的过程 https://blog.csdnnet/jiao0509/article/details/82491299 (1)浏览器查找域名的P地址 查找浏览器缓存(2-30以內)——>查找系统缓存( hosts文件)——>查找路由器缓存(查找|SP服务 商缓存DNS的服务器)一一>递归查询(如果主机所询问的本地域名服务器(DHPC协议获取地址)不 知道被查询域名的P地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查 询请求报文)——>迭代査询(本地域名服务器采用迭代查询,它先向一个根域名服务器查询。本地域 名服务器向根域名服务器的查询一般都是采用迭代查询。所谓迭代査询就是当根域名服务器收到本地域 名服务器发出的查询请求报文后,要么告诉本地域名服务器下一步应该查询哪一个域名服务器,然后本 地域名服务器自己进行后续的查询。) (2)浏览器与目标服务器建立TCP连接 (3)浏览器通过http协议发送请求 浏览器向主机发起一个HTIP-GET方法报文请求。请求中包含访问的URL,也就是 http://www.csdn.com/′,κkeepalive,长连接,还有User-Agent用户浏览器操作系统信息,编码等 值得一提的是 Accep- Encoding和 Cookies项。 Accept= Encoding一般采用gzip,压缩之后传输htm1文 件。 cookies如果是首次访问,会提示服务器建立用户缓存信息,如果不是,可以利用 cookies对应键值,找 到相应缓存,缓存里面存放着用户名,密码和一些用户设置项 (4)某些服务会做永久重定向响应 返回的状态码就不是200K,而是301,302以3开头的重定向码,浏览器在获取了重定向响应后,在响 应报文中 location项找到重定向地址,浏览器重新第一步访问即可。 重定向的作用:重定向是为了负载均衡或者导入流量,提高SEO排名。利用一个前端服务器接受请求, 然后负载到不同的主机上,可以大大提高站点的业务并发处理能力;重定向也可将多个域名的访问,集 中到一个站点;由于baidu.com,www.baidu.com会被搜索引擎认为是两个网站,照成每个的链接数 都会减少从而降低排名,永久重定向会将两个地址关联起来,搜索引擎会认为是同一个网站,从而提高 排名。 (5)浏览器跟踪重定向地址 当浏览器知道了重定向后最终的访问地址之后,重新发送个ht请求,发送内容同上。 (6)服务器处理请求 服务器接收到获取请求,然后处理并返回一个响应 (7)服务器发出一个HTML响应 返回状态码2000K,表示服务器可以响应请求,返回报文,由于在报头中 Content-type 为" text/htm",浏览器以HTML形式呈现,而不是下载文件。 (8)释放TCP连接 (9)浏览器显示页面 (10)浏览器发送获取嵌入在HTML中的其他内容 比如一些样式文件,图片ur1,js文件url等,浏览器会通过这些ur1重新发送请求,请求过程依然是 HTML读取类似的过程,査询域名,发送请求,重定向等。不过这些静态文件是可以缓存到浏览器中的,有时访 问这些文件不需要通过服务器,直接从缓存中取。某些网站也会使用第三方CDN进行托管这些静态文件 ge和post的区别(无本质区别,底层都是基于TCP) 1. OPTIONS返回服务器所支持的请求方法 2.GET向服务器获取指定资源 3.HEAD与GET一致,只不过响应体不返回,只返回响应头 4.Posτ向服务器提交数据,数据放在清求体里 5.PUT与POST相似,只是具有幂等特性,一般用于更新 6. DELETE删除服务器指定资源 7. TRACE回显服务器端收到的请求,测试的时候会用到这个 8. CONNECT预留,暂无使用 (1)get是从服务器上获取数据,post是向服务器传送数据。 (2)生成方式不同: Get:∪RL输入;超连接;Form表单中 method属性为get;Form表单中 method为空 Post只有一种:Form表单中 method为Post (3)数据传送方式:Get传递的请求数据按照 key-value的方式放在URL后面,在网址中可以直接看 到,使用?分割∪RL和传输数据,传输的参数之间以&相连,如: login. action? name=user &password=123. P○ST方法会把请求的参数放到请求头部和空格下面的请求数据字段就是请求正文(请求体)中以&分隔 各个字段,请求行不包含参数,URL中不会额外附带参数。所以安全性高。 (4)发送数据大小的限制:通常GET请求可以用于获取轻量级的数据,而P○ST请求的内容欻据量比较 庞大些 Get:1~2KB。get方法提交数据的大小直接影响到了URL的长度,但HTTP协议规范中其实是没有对URL 狠制长度的,限制∪RL长度的是客户端或服务器的支持的不同所影响 Post:没有要求。pos方式HTTP协议规范中也没有限定,起限制作用的是服务器的处理程序的能力 (5)提交数据的安全:POST比GET方式的安全性要高。Ge安全性差,Pos安全性高。 通过GET提交数据,用户名和密码将明文出现在∪RL上,如果登录页面有浏览器缓存,或者其他人查看 浏览器的历史记录,那么就可以拿到用户的账号和密码了 8、tcp握手挥手 客户 服务器 A B 主动打开 CLOSED CLOSED被动打开 SY 1, 8 X LISTEN SYN SENT ACK SYN ACK RCVD q=x+ ack y+ ESTAB LISHED 数据传送 ESTAB LISHED (1)TCP为什么要进行三次握手? 因为双方都需要确认对方收到了自己发送的序列号,确认过程最少要进行三次通信。 客户 服务器 B ESTAB 主动关闭 LISHED 数据传送 通知 ESTAB- 应用 FIN=l, seq=u LISHED 进程 WAIT-1 ACK=1, seg=v, ack+ CLOSE WAIT 被动关闭 W ck=u FIN CK WAIT-2 FIN LAST 等待2MSL ACK=l, seq=u+ I, ack=w+ ACK TIME WAIT CLOSED CLOSED 〔问题一】TCP为什么要进行四次挥手?/为什么TCP建立连接需要三次,而释放连接则需要四次? 因为TCP是全双工模式,客户端请求关闭连接后,客户端向服务端的连接关闭(一二次挥手),服务端 继续传输之前没传完的数据给客户端(数据传输),服务端向客户端的连接关闭(三四次挥手)。所以 TCP释放连接时服务器的ACK和FN是分开发送的(中间隔着数据传输),而TCP建立连接时服务器 的ACK和SYN是一起发送的(第二次握手),所以TCP建立连接需要三次,而释放连接则需要四次。 问题三】为什么客户端释放最后需要 TIME-WAIT等待2MSL呢? (1)为了保证客户端发送的最后一个ACK报文能够到达服务端。若末成功到达,则服务端超时重传 FN+ACK报文段,客户端再重传ACK,并重新计时。 (2)防止已失效的连接请求报文段岀现在本连接中。 TIME-WAIT持续2MSL可使本连接持续的时间內 所产生的所有报文段都从网络中消失,这样可使下次连接中不会出现旧的连接报文段。 9、TCP/UDP区别,各自的应用 UDP部 UDP数据部分 “““··““““““ 伪首部 源端口目的端口长度 校验和 源IP地址 彐的P地址 UDP长度 TCP首部 源端囗 目的端囗 source por destination part 序号 sequence number 确认号 acknowledgement number tcp flac 数据偏移 保留 窗口 offset reserved RICIS I window size 检验和 紧急指针 checksum urgent pointer TCP选项 TCP options TcP( Transmission control protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流 的传输层通信协议,其传翰的单位是报文段 特征 o面向连接 o只能点对点(一对一)通信 可靠交互 全双工通信 面向字节流 TCP如何保证可靠传输: 确认和超时重传 o数据合理分片和排序 流量控制 o拥塞控制 数据校验 UDP( User Datagram Protocol,用户数据报协议)是无连接的传输层协议,提供面向事务的简 单不可靠信息传送服务,其传输的单位是用户数据报 特征 无连接 o尽最大努力交付 o面向报文 没有拥塞控制 支持一对一、一对多、多对一、多对多的交互通信 o首部开销小 TCP与UDP的区别 1.TCP面向连接,∪DP是无连接的 2.TCP提供可靠的服务,也就是说,通过TCP连接传送的数据,无差错,不丢失,不重 复,且按序到达;UDP尽最大努力交付,即不保证可靠交付 3.TCP的逻辑通信信道是全双工的可靠信道;UDP则是不可靠信道 4.每一条TCP连接只能是点到点的;∪DP支持一对一,一对多,多对一和多对多的交互 通信 5.TCP面向字节流(可能出现黏包问题),实际上是TCP把数据看成一连串无结构的字节 流;∪DP是面向报文的(不会出现黏包问题) 6.∪DP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有 用,如|P电话,实时视频会议等 7.TCP首部开销20字节;UDP的首部开销小,只有8个字节 10、流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。利用可变窗口进行流量控制 1、拥塞控制 慢开始(slow- start) 拥塞避免( congestion avoidance) 快重传( fast retran):收到3个连续的重复确认则立即重传 快恢复( fast recovery) 拥塞窗口cwnd 2超时 24 20 ssthresh 43-ACK 的初始值 。 TCP Reno版本 8 慢开始 慢开始 传输轮次 0 1012141618202224 12、ARP地址解析 (1)每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示P地址和MAC地址之间的对 应关系 (2)主机(网络接口)新加入网络时(也可能只是mac地址发生变化,接口重启等),会发送免费 ARP报文把自己P地址与Mac地址的映射关系广播给其他主机。 (3)网络上的主机接收到免费ARP报文时,会更新自己的ARP缓冲区。将新的映射关系更新到自己的 ARP表中 (4)某个主机需要发送报文时,首先检查ARP列表中是否有对应|P地址的目的主机的MAC地址,如 果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容 有:源主机P地址,源主机MAC地址,目的主机的P地址等。 (5)当本网络的所有主机收到该ARP数据包时 A)首先检査数据包中的P地址是否是自己的伊地址,如果不是,则忽略该数据包 (B)如果是,则首先从数据包中取出源主机的P和MAC地址写入到ARP列表中,如果已经存在 则覆盖。然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址 (6)源主机收到ARP响应包后。将目的主机的P和MAC地址写入ARP列表,并利用此信息发送数 据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。 13.http1.0-与http1.1区别 (1)缓存处理,在HTP1.0中主要使用 header里的 f-Modified-since, Expires来做为缓存判断的标准, HTTP1.1则引入了更多的缓存控制策略例如Entitytag,f-Unmodified-since,f-Match,f-None-Match 等更多可供选择的缓存头来控制缓存策略。 (2)带宽优化及网络连接的使用,HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个 对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTP1.1则在请求头引入 了 range头域,它允许只请求資源的某个部分,即返回码是206( Partial content),这样就方便了开 发者自由的选择以便于充分利用带宽和连接。 (3)错误通知的管理,在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源 与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除 (4)Host头处理,在HTTP1.0中认为每台服务器都绑定一个唯一的P地址,因此,请求消息中的URL 并没有传递主机名( hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚 拟主机(Multi-homedWebservers),并且它们共享一个|P地址。HTTP1.1的请求消息和响应消息都 应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。 (5)长连接,HTTP1.1支持长连接(Persistentconnection)和请求的流水线(Pipelining)处理,在 个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默 认开启 Connection:keeρ-aiⅳve,一定程度上弥补了HTP1.0每次请求都要创建连接的缺点。 14、 Cookie&& Session https://www.cnblogs.com/wuyepenglp/9801023.html 常用的会话跟踪技术是 Cookie与 Session。 Cookie通过在客户端记录信息确定用户身份, Session通过 在服务器端记录信息确定用户身份。 Cookie作用:当服务器给客户端返回数据的时候,中间加了一个标识,然后客户端再次请求数据的时 候,数据中带上这个标识,那么服务器接收到请求消息时就知道这个请求来自于谁了。 1) cookie的工作机制 服务器向客户端响应请求的时候,会在响应头中设置set- cookie的值 浏览器将 cookie保存下来 ·每次请求浏览器都会自动将 cookie发向服务器 cookie最初是在客户端用于存储会话信息的 (2) session的工作机制 o当客户端第一次请求 session对象时,服务器会创建一个 session,并通过特殊算法算出一个 session的D,用来标识该 session对象,然后将这个 session序列放置到 set-cookie中发送给 浏览器 浏览器下次发请求的时候,这个 sessionID会被放置在请求头中,和 cookie-起发送回来 服务器再通过内存中保存的 sessionId跟 cookie中保存的 sessionID进行比较,并根据|D在内 存中找到之前创建的 session对象,提供给请求使用,也就是服务器会通过 session保存 状态记录,浏览器会通过 cookie保存状态记录,服务器通过两者的对比实现跟踪状态,这样 的做,也极大的避免了 cookie被篡改而带来的安全性问题 由于 cookie可以被人为的禁止,必须有其他机制以便在 cookie被禁止时仍然能够把 session id 传递回服务器。经常被使用的种技术叫做URL重写,就是把 session id直接附加在URL路径 的后面,附加方式也有两种,一种是作为URL路径的附加信息,另一种是作为查询字符串附 加在URL后面 15.http状态码 1XX请求正在处理 2XX请求成功2 00OK正常处理 204 no content请求处理成功但没有资源可返回 206 Partial content对资源的某一部分请求 3XX重定向 301 Moved Permanently请求资源的UR已经更新(永久移动),客户端会同步更新URl。 302 Found资源的UR已临时定位到其他位置,客户端不会更新UR 303 See other资源的UR已更新,明确表示客户端要使用GET方法获取资源。 304 Not modified当客户端附带条件请求访问资源时资源已找到但未符合条件请求。 307 Temporary Redirect临时重定向 4XX客户端错误 400 Bad Request请求报文中存在语法错误,一般为参数异常。 401Unauthorized发送的请求需要HTTP认证 403 Forbidden不允许访问,对请求资源的访问被服务器拒绝 404 Not found无法找到请求的资源,请求资源不存在。 405请求的方式不支持。 5XX服务器错误 5 00 Internal server error服务器的内部资源岀故障,服务器在执行请求时发生了错误。 503 Service Unavailable服务器暂时处于超负载状态或正在进行停机维护,无法处理请求,服务器正 16、 Socket 7、网络层协议 内部网关协议 RIP:路由信息协议,是一个基于距离向量的路由协议,最大距离为15,跳数为16不可达。UDP协议 osPF:开放式最短路径优先,是一个基于链路状态的路由协议。洪泛发送IP数据报。 外部网关协议: BGP:边界网关协议,是一种基于路径向量的路由协议。寻找比较好的路径(并非最佳),在AS之间只 交换可达性信息,即到达目的网络要经过哪些AS,并不强调距离。通过交换路由表的方式。 csMA(载波侦听多路访问)协议:如果每个站点在发送前都先侦听一下公用的信道,那么发送信道空 闲后再发送,那么将会大大减小冲突的可能。从而提高信道的利用率。 CSMA/CD(载波侦听多路访问/碰撞检测)工作流程:先听后发,边听边发,冲突停发,随机重发。 PPP(点对点协议): 链路控制协议LCP:用来建立,配置,测试,管理数据链路 网络控制协议NCP:由于PPP可以同时用多种网络层协议,每个不同的网络层协议要用一个相应的NCP 来配置。一个将|P数据报封裝到串行链路的方法。 ARP:地址解析协议 IcMP(互联网控制报文协议):用于报告错误并代表P对消息进行控制。 差错报文:CMP源抑制消息,终点不可达、超时、参数问题、改变路由 询问报文:回送请求和回答、时间戳请求和回答。 GMP(网际组管理协议):组播 操作系统: 、软连接、硬连接 软连接,其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(那就和 windows下的快 捷方式的那个文件有很接近的意味) 1n-s源文件目标文件 硬连接是不会建立 inode的,他只是在文件原来的 linode link count再增加1而已,也因此硬链接是 不可以踣越文件系统的。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调 用会检查 inode link count的数值,如果他大于等于1,那么 inode不会被回收。因此文件的内容不会被 删除。硬链接实际上是为文件建一个别名。 软链接可以跨文件系统,硬链接不可以; 软链接可以对—个不存在的文件名( filename迸进行链接(当然此时如果你ⅵ这个软链接文件, linux 会自动新建一个文件名为 filename的文件),硬链接不可以(其文件必须存在, inode必须存在) 软链接可以对目录进行连接,硬链接不可以。 ·两种链接都可以通过命令n来创建。ln默认创建的是硬链接。 使用-5开关可以创建软链接 2、多线程编程 3、如何创建线程

...展开详情
试读 25P 2020年美团校招面经汇总.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • GitHub

    绑定GitHub第三方账户获取
关注 私信 TA的资源
上传资源赚积分or赚钱
    最新推荐
    2020年美团校招面经汇总.pdf 17积分/C币 立即下载
    1/25
    2020年美团校招面经汇总.pdf第1页
    2020年美团校招面经汇总.pdf第2页
    2020年美团校招面经汇总.pdf第3页
    2020年美团校招面经汇总.pdf第4页
    2020年美团校招面经汇总.pdf第5页

    试读结束, 可继续读3页

    17积分/C币 立即下载 >