八、网络


八、网络


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

301 表示被请求 url 永久转移到新的 url;302 表示被请求 url 临时转移到新的 url。
301 搜索引擎会索引新 url 和新 url 页面的内容;302 搜索引擎可能会索引旧 url 和 新 url 的页面内容。


2. forward 和 redirect 的区别?

forward转发,redirect重定向
区别

  1. forword效率高,而redirect效率低
  2. 转发地址栏不发生变化,重定向浏览器重新请求url地址栏显示新地址
  3. 转发是一直是同一个request共享数据信息,重定向不共享信息
  4. forword转发是服务器内部的行为,而redirect重定向是客户端的行为

3. 简述 tcp 和 udp的区别?

UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息。
优点:UDP速度快、操作简单、要求系统资源较少,由于通讯不需要连接,可以实现广播发送
缺点:UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,也不重复发送,不可靠。

TCP是面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次挥手
优点:TCP在数据传递时,有确认、窗口、重传、阻塞等控制机制,能保证数据正确性,较为可靠。
缺点:TCP相对于UDP速度慢一点,要求系统资源较多。


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

tcp (HTTP的底层协议) 是全双工的一个双向通信传输协议,即客户端在给服务器端发送信息的同时,服务器端也可以给客户端发送信息
通信的双方都需要确认对方是否收到了自己发的数据包是完整有序无差错的,如果不是就需要重发
不行,为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。


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

  1. 什么是 tcp 粘包?
    发送方发送的多个数据包,到接收方缓冲区首尾相连,粘成一包,被接收。

  2. 原因
    TCP 协议默认使用 Nagle 算法可能会把多个数据包一次发送到接收方。
    应用程读取缓存中的数据包的速度小于接收数据包的速度,缓存中的多个数据包会被应用程序当成一个包一次读取。

  3. 处理方法
    发送方使用 TCP_NODELAY 选项来关闭 Nagle 算法
    数据包增加开始符和结束,应用程序读取、区分数据包。
    在数据包的头部定义整个数据包的长度,应用程序先读取数据包的长度,然后读取整个长度的包字节数据,保证读取的是单个包且完整。


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

第一层:物理层
第二层:数据链路层
第三层:网络层
第四层:传输层
第五层:会话层
第六层:表示层
第七层:应用层
(理路网输会示应)


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

  1. get是从服务器上获取数据,post是向服务器传送数据,
  2. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。
  3. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
  4. 在进行文件上传时只能使用post而不能是get。

8. 如何实现跨域?

跨域:当浏览器执行脚本时会检查是否同源,只有同源的脚本才会执行,如果不同源即为跨域。

  1. jsonp
    利用了 script 不受同源策略的限制
    缺点:只能 get 方式,易受到 XSS攻击
  2. 代理跨域请求
    前端向发送请求,经过代理,请求需要的服务器资源
    缺点:需要额外的代理服务器
  3. Html5 postMessage 方法
    允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本、多窗口、跨域消息传递
    缺点:浏览器版本要求,部分浏览器要配置放开跨域限制

9. 说一下 JSONP 实现原理?

jsonp通过在服务端用一个回调函数把数据一起包裹起来并返回给客户端(jsonp名字就是这样来的json padding),然后客户端写好回调(处理数据),并动态创建一个script节点,通过src属性来调用服务端返回的回调函数。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无痕YF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值