java面试---网络

1 篇文章 0 订阅
  1. http 响应码 301 和 302 代表的是什么?有什么区别?
    301,302 都是HTTP状态的编码,都代表着某个URL发生了转移
    301 redirect: 301 代表永久性转移(Permanently Moved)。
    302 redirect: 302 代表暂时性转移(Temporarily Moved )。

  2. forward 和 redirect 的区别?
    Forward:客户端和浏览器只发出一次请求,Servlet、HTML、JSP或其它信息资源,由第二个信息资源响应该请求,在请求对象request中,保存的对象对于每个信息资源是共享的。
    Redirect:实际是两次HTTP请求,服务器端在响应第一次请求的时候,让浏览器再向另外一个URL发出请求,从而达到转发的目的。

  3. 简述 tcp 和 udp的区别?
    1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
    2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
    Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。
    3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
    4.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
    5、TCP对系统资源要求较多,UDP对系统资源要求较少。

  4. tcp 为什么要三次握手,两次不行吗?为什么?
    防止已失效的连接请求又传送到服务器端,因而产生错误

  5. 说一下 tcp 粘包是怎么产生的?
    TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。
    1)发送方原因
      我们知道,TCP默认会使用Nagle算法。而Nagle算法主要做两件事:1)只有上一个分组得到确认,才会发送下一个分组;2)收集多个小分组,在一个确认到来时一起发送。
      所以,正是Nagle算法造成了发送方有可能造成粘包现象。
    2)接收方原因
      TCP接收到分组时,并不会立刻送至应用层处理,或者说,应用层并不一定会立即处理;实际上,TCP将收到的分组保存至接收缓存里,然后应用程序主动从缓存里读收到的分组。这样一来,如果TCP接收分组的速度大于应用程序读分组的速度,多个包就会被存至缓存,应用程序读时,就会读到多个首尾相接粘到一起的包。

  6. OSI 的七层模型都有哪些?
    应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

  7. get 和 post 请求有哪些区别?
    (1) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
    (2) GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
    (3) 安全性问题。使用 Get的时候,参数会显示在地址栏上,而 Post不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。
    (4) 安全的和幂等的

  8. 如何实现跨域?
    1).图片ping或script标签跨域
    2).JSONP跨域
    3).CORS
    4).window.name+iframe
    5).window.postMessage()
    6).修改document.domain跨子域
    7).WebSocket
    8).代理

  9. 说一下 JSONP 实现原理?
    跨域是协议,端口,域名(以上任意一个不同都算是跨域)
    首先在客户端注册一个callback,然后把callback的名字传给服务器。此时,服务器先生成json数据,然后以javascript语法的方式,生成function,function名字就是传递上来I带参数jsonp。最后将json数据直接以入参的方式,放置function中,这样就生成js语法的文档,返回给客户端。客户端浏览器,解析script变迁,并执行返回javascript文档,此时数据作为参数,传入了客户端预先定义好的callback函数里。简单的说,就是利用script标签没有跨域限制的“漏洞”来达到与第三方通讯的目的。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值