为了账号安全,请及时绑定邮箱和手机立即绑定

计算机网络

标签:
面试

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

    301:永久重定向

    302:暂时重定向

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

2.简述TCP和UDP的区别?

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

  • tcp面向连接。UDP面向非连接即发送数据前不需要建立连接

  • TCP提供可靠的服务(数据传输),UDP无法保证

  • TCP面向字节流,UDP面向报文;

  • TCP数据传输慢,UDP数据传输快;

3.TCP为什么要三次握手,两次不行吗?为什么?

70

SYN--请求建立连接,并在其序列号的字段进行序列号的初始值设定。建立连接,设置为1

ACK--确认号是否有效,一般置为1

RST---对方要求重新建立连接

FIN---希望断开连接

PSH---提示接收端应用程立即从TCP缓冲区数据都读走

  • 第一次握手:建立连接时,客户端发送SYN包(SYN=j)到服务器,并进入SYN_SENT状态,等待服务器确认;

  • 第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),此时服务器进入SYN_RECV状态;

  • 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手

    假如只进行两次握手,客户端发送连接请求后,会等待服务器的应答。但是会出现的问题说的是,假如客户端的SYN迟迟美誉到达服务器端。此时客户端超时后,会重新发送一次连接,加入重发的这次服务器端收到了。且应答客户端了,建立连接了。但是建立连接后,第一个SYN也到达服务端了,这时服务端会认为这是一个新连接,会再给客户端发送一个ACK,这个ACK当然会被客户端丢弃。但是此时服务器端已经为这个连接分配资源类,而且服务器端会一直维持这个资源,会造成浪费。如果是三次握手,服务器端会等待客户端的第三次握手,如果三次握手迟迟不来,服务器端会释放相关资源。两次握手的问题在于服务器端不知道SYN的有效性

4.说一下TCP粘包是怎么产生的?

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

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

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

5.OSI的七层模型都有哪些?

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

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

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

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

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

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

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

6.get和post请求有哪些区别?

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

  • get传递参数有大小限制,而post没有

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

7.说一下JSONP实现原理?

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


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消