zoukankan      html  css  js  c++  java
  • JAVA面试——网络 晓>冥

    1、http响应码301和302代表的是什么?有什么区别?

    301:永久重定向。

    302:暂时重定向

    它们的区别是:301对搜索引擎优化(SEO)更加有利;302有被提示为网络拦截的风险。

     

    2、forward和redirect的区别?

    forward 是转发和redirect是重定向:

    1)地址栏url显示:forward url不会发生改变,redirect url会发生改变;

    2)数据共享:forward可以共享request里的数据,redirect不能共享;

    3)效率:forward比redirect效率高。

     

    3、简述tcp和udp的区别?

    tcp和udp是OSI模型中的运输层中的协议。tcp提供可靠的通信传输,而udp则常被用于让广播和细节控制就交给应用的通讯传输。

    tcp与udp的区别大致如下:

    1)tcp面向连接、udp面向非连接即发送数据前不需要建立链接;

    2)tcp提供可靠的服务(数据传输),udp无法保证;

    3)tcp面向字节流,udp面向报文;

    4)tcp传输慢,udp传输快。

     

    4、tcp 为什么要三次握手,两次不行吗?为什么?

    如果采用两次握手,那么只要服务器发出确认数据包就会建立连接,但由于客户端此时并未响应服务器端的请求,那此时服务器端就会一直在等待客户端,这样服务器 端就白白浪费了一定的资源。若采用三次握手,服务器端没有收到来自客户端的再此确认,则就会知道客户端并没有要求建立请求,就不会浪费服务器资源。

     

    5、说一下tcp粘包是怎么产生的?

    tcp粘包可能发生在发送端或者接收端,分别来看两端各种产生粘包的原因:

    1)发送端粘包:发送端需要等缓冲区满才发送出去,造成粘包;

    2)接收方粘包:接收方不及时接收缓冲区的包,造成多个包接收。

     

    6、OSI的七层模型都有哪些?

    OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每一层对于上一层来讲是透明的,上层只需要使用下层提供的接口,并不关心下层是如何实现的。

    物理层 物理层规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上 层协议提供了一个传输数据的物理媒体。 在这一层,数据的单位称为比特(bit)。 属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35RJ-45等。

    数据链路层 数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量 控制、数据的检错、重发等。 在这一层,数据的单位称为帧(frame)。 数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。

    网络层 网络层负责对子网间的数据包进行路由选择。网络层还可以实现拥塞控制、网际互连等功能。 在这一层,数据的单位称为数据包(packet)。 网络层协议的代表包括:IP、IPX、RIP、OSPF等

    传输层 传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不 可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。 在这一层,数据的单位称为数据段(segment)。 传输层协议的代表包括:TCP、UDP、SPX等。

    会话层 会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入 校验点来实现数据的同步。    表示层 表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层 的数据转换包括数据的加密、压缩、格式转换等。

    应用层 应用层为操作系统或网络应用程序提供访问网络服务的接口。 应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。

     

    物理层:利用传输介质为数据链路层提供物理链接,实现比特流的透明传输。

    数据链路层:负责建立和管理节点间的链路。

    网络层:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。

    传输层:向用户提高可靠的端到端的差错和流量控制,保证报文的正确输出。

    会话层:向两个实体的表示层提供建立和使用连接的方法。

    表示层:处理用户信息的表示问题,如编码、数据格式转换和加密解密等。

    应用层:直接向用户提供服务,完成用户希望在网络上完成的各种工作。

     

     

    7、get和post请求有哪些区别?

    1)get请求会被浏览器主动缓存,而post不会。

    2)get传递参数有大小限制,而post没有。

    3)post参数传输更安全,get的参数会明文限制在url上,post不会。

     

    8、如何实现跨域?

    实现跨域有以下几种方案:

    1)服务器端运行跨域设置CORS等于*;

    2)在单个接口使用注解@CrossOrigin运行跨域;

    3)使用jsonp跨域;

     

    9、JSONP实现原理?

    JSONP:JSON with Padding,它是利用script标签的src连接可以访问不同源的特性,加载远程返回的“JS函数”来执行的。

     

     

     

     

     

  • 相关阅读:
    读《人人都是产品经理》
    前端值得看的博客
    git 常用命令 创建查看删除分支,创建查看删除tag等
    看《如何令选择变得更加容易》
    读【失控】——众愚成智
    html5 postMessage
    下拉滚动加载更多数据
    html select用法总结
    分布式系统事务一致性解决方案
    nginx简易教程
  • 原文地址:https://www.cnblogs.com/xiaomingwang/p/11586881.html
Copyright © 2011-2022 走看看