🍪🧁🍧

计网基础知识

发展历程 :

  1. HUB(集线器) 做数据的转发,让接收设备自己判断这个数据是不是发给自己的 。但如果有两个设备同时发送就处理不了了,他可能会一股脑全部发送给接收设备,于是出现了CMSA/CD 每次只能有一台设备发送数据
    属于物理层
    2 SW (交换机)
    记录地址和端口的映射关系,地址:MAC地址,物理地址,出厂时设定好的,全球唯一

属于数据链路层,这一层的数据中包括数据头和数据,数据头中写着目的地址
交换机之间可以进行桥接
容量几千个的端口吧,交换机之间需要广播,网络规模大时效率低
3 路由器/网关
进行不同网络设备之间的数据转发
IP地址:标识网络或者设备

1. OSI七层网络参考模型 TCP/IP网络模型

带位填充的首尾标记法
01111110 标记发送开始和结束
为防止发送的数据中的01111110影响判断
发送方在连续发送5个1后填充一个0,接收方在连续接收5个1后删除接收到的下一个0

7应用层
1物理层 数据
2数据链路层 比特封装成帧 加上MAC地址(物理地址) 交换机完成地址的定向传输 网卡对应物理地址
流控制
3网络层

http相关知识

跨域

浏览器的同源策略要求协议、域名和端口都必须相同才属于同源,只是域名和端口相同但协议不同仍然属于跨域。

如何解决跨域

1. jsonp

html中带src属性的标签

仅限GET

2. CROS

后端实现

CORS (Cross-Origin Resource Sharing,跨域资源共享)是一个系统,它由一系列传输的HTTP头组成,这些HTTP头决定浏览器是否阻止前端 JavaScript 代码获取跨域请求的响应

CORS 实现起来非常方便,只需要增加一些 HTTP 头,让服务器能声明允许的访问来源

3. Proxy

react18

在package.json中写

 "proxy":"{要请求的地址}"

如果有多个需要代理的地址,在src路径下创建setupProxy.js
在项目中,用api1/api2区分对不同服务器的请求,在发送请求前用pathrewrite重写请求的url

const { createProxyMiddleware } = require('http-proxy-middleware')

module.exports = function (app) {
    app.use(
        createProxyMiddleware('/api1', {
            target: 'http://localhost:5000',
            changeOrigin: true,
            pathRewrite: { '^/api1': '' }
        }),
	// changeOrigin设置为true时,服务器收到的请求头中的host为:localhost:5000//请求目标地址
        // changeOrigin设置为false时,服务器收到的请求头中的host为:localhost:3000//项目地址
        // changeOrigin默认值为false

         createProxyMiddleware('/api2', { 
            target: 'http://localhost:5001',
            changeOrigin: true,
            pathRewrite: { '^/api2': '' }
        }),
    )
}


posted @ 2025-04-25 23:38  不想吃fun  阅读(24)  评论(0)    收藏  举报