欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > Java面试题库——网络编程

Java面试题库——网络编程

2024/10/27 8:18:31 来源:https://blog.csdn.net/qq_58193440/article/details/143189386  浏览:    关键词:Java面试题库——网络编程

1.http常见响应码

响应码含义
200成功
301永久移动。请求的资源已被永久的移动到新的URI,返回的信息会包括新的URI,浏览器会自动定向新的URI
302临时移动。与301类似,但资源只是临时被移动。客户端应继续使用原有的URI
400错误请求。客户端请求的语法错误,服务器无法理解
401未授权。请求要求用户的身份验证
403请求被禁止。服务器理解请求客户端的请求,但是拒绝执行此请求
404未找到。服务器无法根据客户端的请求找到资源
500服务器内部错误。无法完成请求
信息响应(100-199)、成功响应(200-299)、重定向(300-399)、客户端错误(400-499)、服务器错误(500-599)

2.forward和redirect的区别?

redirect是客户端发起的请求;forward是服务端发起的请求。
redirect浏览器显示被请求的URL;forward浏览器地址不显示被请求的URL。
redirect重新开始一个request,原页面的request生命周期结束;forward另一个连接时,request变量是在其生命周期内。
redirect实质上是两次HTTP请求;forward是一次请求。

3.简述tcp和udp的区别

TCP是面向连接的,TCP提供可靠的服务,通过TCP连接传输的数据不会丢失,没有重复,并且按顺序到达;UDP是无连接的,没有可靠性,但是速度快,操作简单,要求系统资源较少,可以实现广播发送。
TCP是面向字节流的;UDP是面向报文的。
TCP是全双工的可靠信道;UDP是不可靠信道。

4.简述TCP三次握手的过程

缩写含义
TCB传输控制块,打开后服务器/客户端进入监听(LISTEN)状态
SYNTCP报文标志位,该位为1时表示发起一个新连接
ACKTCP报文标志位,该位为1时,确认序号有效,确认接收到消息。TCP规定,在连接建立后所有报文的传输都必须把ACK置1
seq报文初始序列号,代表发送的第一个字节的序号
ack报文确认序号,代表希望收到的下一个数据的第一个字节的序号
第一次握手:建立连接时,客户端发送请求SYN+数据包当前序列号seq到服务器,并进入SYN_SEND状态,等待服务器确认。
第二次握手:服务器收到syn包,必须确认客户的SYN,然后发送应答ACK+请求SYN+确认收到上一个数据包的确认号ack+当前数据包序列号seq,此时服务器进入SYN_RECV状态。
第三次握手:客户端收到服务端的syn+ack包,向服务器发送应答ACK+确认收到上一个数据包的确认号ack+当前数据包序列号seq,连接已建立,无需请求。客户端和服务端进入ESTABLISHED状态。简答:A与B建立TCP连接时:首先A向B发SYN(同步请求),然后B回复SYN+ACK(同步请求应答),最后A回复ACK确认,这样TCP的一次连接(三次握手)的过程就建立了!

5.tcp 为什么要三次握手,两次不行吗?为什么?

两次握手只能保证单向连接是畅通的。只有经过第三次握手,才能确保双向都可以收到对方发送的数据。

6.tcp粘包是怎么产生的?

TCP粘包:发送方发送的多个数据包,到接收方缓冲区首尾相连,粘成一包,被接收。
发送方原因:TCP为提高传输效率,发送方往往要收集到足够多的数据后才发送一包数据。若连续几次发送的数据都很少,通常TCP会根据优化算法把这些数据合成一包后一次性发送出去,这样接收放就收到了粘包数据。
接收方原因:接收方引起的粘包是由于接收方用户进程不及时接收数据,从而导致粘包现象。这是因为接收方先把收到的数据放在系统接收缓冲区,用户进程从该缓冲区取数据,若下一包数据到达时前一包数据尚未被用户进程取走,则下一包数据放到系统接收缓冲区时就接到前一包数据之后,而用户进程根据预先设定的缓冲区大小从系统接收缓冲区取数据,这样就一次取到了多包数据。

7.OSI(开放式系统互联网通信)的七层模型有哪些?

应用层、表达层、会话层、传输层、网络层、数据链路层、物理层

8.get和post请求有什么区别?

get是从服务器上获取数据;post是向服务器提交数据。
get请求通过URL直接请求数据,数据信息可以在URL中看见;post请求是放在请求头中的,用户看不到。
get请求传送的数据量小,有限制,不能大于2kb;post传送的数据可以没有限制。
get安全性比较低;post相比较安全。

9.如何实现跨域?

代理跨域请求;
使用JSONP,利用了script不受同源策略的限制;
HTML5 的postMessage方法;
修改document.domain跨子域;
基于HTML5的websocket协议

10.说一下JSONP实现原理

同源:同协议、同主机、同端口号
json是一种数据格式,jsonp是一种数据调用的方式,带callback的json就是jsonp。
首先在客户端注册一个callback,然后把callback的名字传给服务器,此时,服务器先生成json数据,然后以JavaScript语法的方式,生成function,返回客户端,客户端解析script,并执行callback函数。

11.单工、半双工、全双工

单工:只支持数据在一个方向上传输;
半双工:允许数据在两个方向上传输,但在某一时刻,只允许数据在同一个方向上传输;
全双工:允许数据可以同时接收和发送信息,实现双向通信。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com