关于面试:面试网络
网络 79. http 响应码 301 和 302 代表的是什么?有什么区别? 答:301,302 都是HTTP状态的编码,都代表着某个URL产生了转移。 区别: 301 redirect: 301 代表永久性转移(Permanently Moved)。302 redirect: 302 代表暂时性转移(Temporarily Moved )。 80. forward 和 redirect 的区别? Forward和Redirect代表了两种申请转发形式:间接转发和间接转发。 间接转发形式(Forward),客户端和浏览器只收回一次申请,Servlet、HTML、JSP或其它信息资源,由第二个信息资源响应该申请,在申请对象request中,保留的对象对于每个信息资源是共享的。 间接转发形式(Redirect)理论是两次HTTP申请,服务器端在响应第一次申请的时候,让浏览器再向另外一个URL发出请求,从而达到转发的目标。 举个艰深的例子: 间接转发就相当于:“A找B借钱,B说没有,B去找C借,借到借不到都会把消息传递给A”; 间接转发就相当于:"A找B借钱,B说没有,让A去找C借"。 81. 简述 tcp 和 udp的区别? TCP面向连贯(如打电话要先拨号建设连贯);UDP是无连贯的,即发送数据之前不须要建设连贯。TCP提供牢靠的服务。也就是说,通过TCP连贯传送的数据,无差错,不失落,不反复,且按序达到;UDP尽最大致力交付,即不保障牢靠交付。Tcp通过校验和,重传管制,序号标识,滑动窗口、确认应答实现牢靠传输。如丢包时的重发管制,还能够对秩序乱掉的分包进行顺序控制。UDP具备较好的实时性,工作效率比TCP高,实用于对高速传输和实时性有较高的通信或播送通信。每一条TCP连贯只能是点到点的;UDP反对一对一,一对多,多对一和多对多的交互通信。TCP对系统资源要求较多,UDP对系统资源要求较少。82. tcp 为什么要三次握手,两次不行吗?为什么? 为了实现牢靠数据传输, TCP 协定的通信单方, 都必须保护一个序列号, 以标识发送进来的数据包中, 哪些是曾经被对方收到的。 三次握手的过程即是通信单方互相告知序列号起始值, 并确认对方曾经收到了序列号起始值的必经步骤。 如果只是两次握手, 至少只有连贯发起方的起始序列号能被确认, 另一方抉择的序列号则得不到确认。 83. 说一下 tcp 粘包是怎么产生的? ①. 发送方产生粘包 采纳TCP协定传输数据的客户端与服务器常常是放弃一个长连贯的状态(一次连贯发一次数据不存在粘包),单方在连接不断开的状况下,能够始终传输数据;但当发送的数据包过于的小时,那么TCP协定默认的会启用Nagle算法,将这些较小的数据包进行合并发送(缓冲区数据发送是一个堆压的过程);这个合并过程就是在发送缓冲区中进行的,也就是说数据发送进去它曾经是粘包的状态了。 ②. 接管方产生粘包 接管方采纳TCP协定接收数据时的过程是这样的:数据到底接管方,从网络模型的下方传递至传输层,传输层的TCP协定解决是将其搁置接收缓冲区,而后由应用层来被动获取(C语言用recv、read等函数);这时会呈现一个问题,就是咱们在程序中调用的读取数据函数不能及时的把缓冲区中的数据拿进去,而下一个数据又到来并有一部分放入的缓冲区开端,等咱们读取数据时就是一个粘包。(放数据的速度 > 应用层拿数据速度) 84. OSI 的七层模型都有哪些? 应用层:网络服务与最终用户的一个接口。表示层:数据的示意、平安、压缩。会话层:建设、治理、终止会话。传输层:定义传输数据的协定端口号,以及流控和过错校验。网络层:进行逻辑地址寻址,实现不同网络之间的门路抉择。数据链路层:建设逻辑连贯、进行硬件地址寻址、过错校验等性能。物理层:建设、保护、断开物理连贯。85. get 和 post 申请有哪些区别? GET在浏览器回退时是有害的,而POST会再次提交申请。GET产生的URL地址能够被Bookmark,而POST不能够。GET申请会被浏览器被动cache,而POST不会,除非手动设置。GET申请只能进行url编码,而POST反对多种编码方式。GET申请参数会被残缺保留在浏览器历史记录里,而POST中的参数不会被保留。GET申请在URL中传送的参数是有长度限度的,而POST么有。对参数的数据类型,GET只承受ASCII字符,而POST没有限度。GET比POST更不平安,因为参数间接裸露在URL上,所以不能用来传递敏感信息。GET参数通过URL传递,POST放在Request body中。86. 如何实现跨域? 形式一:图片ping或script标签跨域图片ping罕用于跟踪用户点击页面或动静广告曝光次数。 script标签能够失去从其余起源数据,这也是JSONP依赖的依据。 ...