计算机网络常见问题总结

计算机网络常见问题总结


  1. http 响应码 301 和 302 代表的是什么?有什么区别?
  2. forward 和 redirect 的区别?
  3. 简述 tcp 和 udp 的区别?
  4. tcp 为什么要三次握手?两次不行么?为什么?
  5. 说一下 tcp 粘包是怎么产生的?
  6. OSI 的七层模型都有哪些?
  7. get 和 post 请求有什么区别?
  8. 如何实现跨域?
  9. 说一下 JSONP 实现原理?

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

301:永久重定向

302:暂时重定向

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


2. forward 和 redirect 的区别?

forward 是转发和 redirect 是重定向:

  • 地址栏 url 显示:forward url 不会发生改变,redirect url 会发生改变;
  • 数据共享:forward 可以共享 request 里的数据,redirect 不能共享;
  • 效率:forward 比 redirect 效率高;

3. 简述 tcp 和 udp 的区别?

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

两者的区别大致如下:

  1. TCP是面向连接的,UDP是无连接的;

  2. TCP是可靠的,UDP是不可靠的;

  3. TCP只支持点对点通信,UDP支持一对一、一对多、多对一、多对多的通信模式;

  4. TCP是面向字节流的,UDP是面向报文的;

  5. TCP有拥塞控制机制;UDP没有拥塞控制,适合媒体通信;

  6. TCP首部开销(20个字节)比UDP的首部开销(8个字节)要大;


4. tcp 为什么要三次握手?两次不行么?为什么?

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


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

tcp 粘包问题主要是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的。tcp粘包 可能发生在发送端或者接收端,分别来看各种产生粘包的原因:

  • 发送端粘包:发送端需要等缓冲区满才发送出去,造成粘包
  • 接收方粘包:接收方不及时接收缓冲区的包,造成多个包接收。

详细请看: tcp 粘包问题


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

  • 物理层:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
  • 数据链路层:负责建立和管理节点的链路。
  • 网络层:通过路由选择算法,为报文或分组通过子网选择最适当的路径。
  • 传输层:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。
  • 会话层:向两个实体的表示层提供建立和使用连接的方法。
  • 表示层:处理用户信息的表示问题,如编码、数据格式转换和加密解密等。
  • 应用层:直接向用户提供服务,完成用户希望在网络上完成的各种工作。

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

  1. 从功能上讲:get 一般用来获取服务器上的资源,post 一般用户更新服务器上的资源。
  2. 从 REST 服务角度上说:get 是幂等的,即读取同一个资源,总是得到相同的数据。而 post 不是幂等的,因为每次请求对资源的改变并不是相同的;进一步讲,get 不会改变服务器上的资源,而 post 会对服务器资源进行改变。
  3. 从请求参数形式上看:get 请求的数据会附在 URL 之后,即将请求数据放置在 HTTP 报文的请求头中,以 ?分割URL和传输数据,参数直接用 & 连接。而 post 请求会把提交的数据放置在HTTP请求的报文的请求体中。
  4. 从安全性讲:post 的安全性要比 get 的安全性高,因为 get 请求提交的数据将明文出现在url 上,而post请求参数则被封装到请求体中,相对更安全。
  5. 从请求的大小看:get请求的长度受限于游览器或服务器对URL长度的限制,运行发送的数据量比较小,而post请求则是没有大小限制的。

8. 如何实现跨域?

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

  • 服务器端运行跨域 设置 CORS 等于*;
  • 在单个接口使用注解 @CrossOrigin 运行跨域;
  • 使用 jsonp 跨域;

9. 说一下 JSONP 实现原理?

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

你可能感兴趣的:(计算机网络)