00:00
好嘞,各位,那在这一小节呢,我们给大家说第二种配置代理的方式,刚才所说的这第一种啊,有两个不完美,第一个不完美呢,就是你只能配置一个代理,也就是说你只能给5000转发请求,如果再来一台服务器,你就转发不了了。第二个不完美呢,就是你不能够去灵活的控制它到底走不走代理,哎,还是这问题刚才说过了啊,比如说APP里边我发了个请求,我想要这个students,我们心里明白啊,我们是想让他走代理,然后转发给5000,完了,5000给我的students是咱们想要的,对不对?但由于你这里边已经有了一个students,诶,他就这么做了,来把这个直接给你,他还走代理吗?会转发吗?不会,那你看这就是不灵活呗。诶这两个不完美啊,在这一小节都能得到解决,哎,给它关掉,找到配置文件,各位把刚才写的配置给它注掉,然后在这儿呢,写一个括号叫做方式一,然后呢,这一小节我讲的就是方式二。方式二怎么写呢?各位还得看官方文档对不?刚才呢,我做了一个准备性工作啊各位,服务器二服务器一都被我重启了一下,目前呢,他俩干干净净的,没有任何人请求他们两个啊,没有任何的输出,好回到5U脚手架的官网来到这儿第二种配置人家已经给你写好了啊,那咱把这一堆东西啊给它拿过来就行了,复制回到这个里面走,别忘了在上边加一个小逗号啊,在这给你补一个好同学这两种方式别同时用啊,要么方式一,要么方式二,因为你看同学配置项都叫第一位server,这是不是也叫第一位R,这叫proxy,这是不是也叫proxy啊,只不过是里边的东西不同而已,是不,各位哎,在这儿呢,他给你写了两套配置,各位看好了啊,绿色的这是一套,哎,红色这个呢,是另外一套,咱不是说嘛,能这个指定多个代理嘛,那他在这儿呢,就给你写了两个是这样啊,这个红色的呢,是在这个绿色的基础上啊精简而来的,所以说我现在临时把这红色的给你删掉啊。
01:56
就这个完整的分析完了,我们也能精简啊,首先说点关键性的东西啊同学,这个东西呢,给它注掉,这东西呢也注掉,咱先不去关注这两个,一会儿我会给你说的啊首先关注这杠API什么意思,这叫请求前缀,请求前缀有什么作用呢?那作用可大了,来瞧着各位啊,目前呢,你所处的位置啊,是这个8080,然后呢,你给这个代理服务器也开在8080的这个粉的,你是不是给他发了一个请求啊,哎,你瞧着一个请求啊过来了,那么这个代理服务器马上就会问一个问题,说哥们,你本次请求请求的前缀是什么呀?前缀是不是杠诉API呢?然后他说那不是啊,他就不走代理了,如果他说哎,我的请求前缀是杠API,他说好走代理,我给你转发过去,同学觉不觉得这就是属于灵活控制,想走代理,那就在请求的前面你加上一个杠API,不想走代理,那请求的时候那个地址前边你就别加这个。
02:56
杠API,这就是灵活的控制啊,那在这呢,同学不一定非得写这个杠API,你比如说我写杠I的硅谷行不行可以啊,哎,那这个他给的什么意思呢?哎,说白了就是如果你那个请求前缀是杠艾特硅谷的,那我这个请求我怎么给你转发,转发给谁?说白了就还是原来的这地址呗,往这一写,这不就得了吗?这就是一个最简单的配置了,只要请求的前缀是艾特硅谷,OK,我就把这东西转发给哪儿呢?5000那台服务器你改了配置对吗?各位好,接下来呢,重启这个脚手架,启动一下。
03:31
理论上它应该能实现跟刚才一样的效果,对不对,哎,稍等啊等会儿。好,慢慢来,别急,各位,我打开服务器一,我问你有人请求他吗?没有,哎,好,回到我的这个代码里面,同学我问你说我这么发请求行不行,肯定不行,各位你这么发你不是找8080吗?对吧,人家是不是有students啊,而且最主要的是你这个请求地址我问一下是以杠艾特硅谷为前缀的吗?不是,所以说同学你这个东西到达了粉色的那个代理服务器那儿啊,人家压根儿不给你转发,说不给他转发,为啥,谁让他那个请求前边不是以杠艾特硅谷为前缀的呢?哎,所以说你得改一下地址啊,说老师那明白了,杠艾特硅谷完事了呗,前缀嘛,就得放在最前方呗。哎,各位,前缀确实是前缀,但是你别放在最前方,哎,那放在哪儿呢?同学瞪大你的眼睛看这个位置有讲究,这个位置啊,是紧跟端口号的,我问你端口号在哪,老师在这儿呢,8080好,就在它的后边杠at硅谷说老师那后边的后边的不要变。
04:38
原来怎么写就怎么写,就比如说同学你正常去联系人家的路径是杠A-B是吧?哎,然后杠C-D,就这东西不要改,这些东西原来怎么写还怎么写,只不过在8080的后边,你多写一个杠at特硅谷,哎,这叫前缀,前缀不是说最靠前,是指忽略了这个协议名,主机名、端口号的最前方,OK写在这儿,那后边这些东西呢,给它删掉,说老师你这么一写,诶同学,我这么一写,我就敢把我这个请求交给粉丝的代理服务器,之后粉丝的代理服务器一检查,哎哟,这大哥,这请求是杠艾特硅谷开头了,好了,二话不说就把这个给你转发到哪了,5000了啊,说老师,然后数据就能回来了呗,理论上好像确实是这样,来,那我们试一下啊,回到这儿,刷新一波,看好了321走。
05:29
哎呀,有意思了,同学,这回不是跨域啊,这回不是跨域,是404,哎呀,那这是咋回事儿呢?啊来同学先看一下这儿啊,看看服务器一有没有收到请求,走你有没有有诶老师你给我解释解释这什么情况啊,来给你解释啊,各位慢慢来,目前呢,你所处的位置啊,是8080,然后你刚才发请求的时候,各位你那地址怎么写的来着,你那地址啊,你不要再写那个什么协议名主机名了,Local host什么8080那些都忽略,我说后边的东西你怎么写的,是不是写的是杠哎,硅谷杠students是不是这么写的?嗯,虽然我这有点没放下啊,大家将就着看,你看是不是这么写的路径啊。哎,然后同学你把这个请求是发给谁的啊,发给粉色的这个代理服务器是不是,嗯,那代理服务器同学收到的地址说你想要的当然就是杠艾特硅谷杠students是吧各位,然后重点来了这个代理服务器发现,哎呦喂啊,这请。
06:29
由前缀是杠二的硅谷啊,好了,我给你转发,转发给谁呀,刚才你那摊给他不是白配置的,他肯定给你转发到哪儿啊,5000,诶重点来了啊,同学他转发的时候啊,诶他找5000去要东西的时候,那个路径居然也是杠at硅谷杠,然后是students,值得你注意的是5000这台服务器它有这个students,但是人家没有艾特硅谷下的students,明白不?各位你艾特硅谷那不是你自己前台你配置代理的时候你自己去定义的吗?你怎么能把这艾特硅谷也带给5000呢?那5000肯定告诉你啊,哥们要students有,但是你要艾特硅谷下的students,那没有,是由于你错误的把这个东西带给了服务器,说老师是吗?你这就瞎说吧,反正你骗我不懂啊,骗我读书少不是可以验证,各位来,回到这儿啊,你找到那个服务器,打开这儿呗,然后你找到那个server server几的SERVER1啊同学,这里边你看我都给你写好这些东西了,只不过我注掉了啊。
07:29
在这儿我把这行给你解开,叫做请求的资源是,哎,你注意观察啊,各位给它关掉,然后呢,既然我改了服务器的代码,我就得重启服务器啊,关掉服务器一清空,重启服务器一,这时候你看好了各位刷新一波啊321走,你这肯定跟刚才一样,主要是说看看服务器一输出了什么,同学你看啥请求的资源是,你看我没骗你吧,你把这个东西带过去了,不能带啊,朱老师,那我知道了,肯定是你刚才手贱,你这个东西不应该注掉,你上来咔咔就给人家注掉了,肯定是这两个东西所引起的,因为人家官网写的最完整的配置就是他给他WS什么change origin嘛,那你看看老师那官网不这么写的嘛,你看一个两个三个,你就不应该把他俩住掉,肯定是住掉他俩影响的不是各位,我告诉你啊,就这两个人,你打开也无济于事,来验证,停掉脚手架走,你看看是不是这么回事儿啊,他俩其实不是影响这个路径的啊,稍微等一会儿。
08:31
OK,启动完了吧,这回可是重新启动的啊,来回到这儿刷新一波,你看着啊各位走你啊啊,我没点上吗?啊再来一下走你诶说老师那怎么回事,可能是我这卡了啊,你在这敲下回车就好了啊同学我说一下啊,它这个CMD啊,有这么一个特点,你看着啊,我给这清掉服务器一呢为它重新开启,停掉清空,然后开启,同学是不是开启了,你鼠标在这滑一下哎,划一下,然后呢,你就停在这个状态啊,等你再请求的时候,这CMD它就卡掉了,你只要敲一下回车,它再往下走知道不?各位哎,所以说有的时候我们在这如果说你复制完了东西,你最好在这儿敲一下回车啊好了,同学,干干净净的重新来停掉,服务器一全都清空掉,服务器一启动啊,我不去点它刷新一波,各位来,接下来去请求它321走,你同学是不是还是404,你看啊,我这俩东西是不是打开了,但是我问你问题解决了吗?没有,这不还是带着艾特硅谷students吗?也就是说你得保证这么一件事儿,你送给5000这台服务器的,不应该再带着这个杠艾。
09:32
硅谷了,就所有橙色框里的东西都应该给他杠掉,你给5000的就是杠students对不?各位啊,那这怎么办呀?啊说一下各位就得借助一个配置了啊,Pass在官网上呢,并没有直接的给我们体现出来,各位啊,我还是把这注掉,把这注掉一会儿我再跟你说它俩是干嘛的同学,你得加上这么一个配置,特别的重要啊,叫做pass pass是不是有路径的意思哎,然后再加上这个单词rewrite啥意思?重写重写路径,它的值呢,是一个对象啊,里边包含着一个K,还有一个什么呢?Value,然后这个K写什么呢?各位,写一个正则的匹配条件,我这么写,看你明不明白啊,杠,然后写上这个at特硅谷,我这么写啥意思?匹配所有以艾特硅谷开头的路径对不对?然后把这个艾特硅谷就都给它变成什么呢?变成一个空字符串,哎,也就是说你只有加上了这个配置,你才能够保证你的代理服务器拿到这个地址之后,转发给5000的只是这一部分,而不带着这一部分。
10:32
OK,好了,你又改了配置,那所以说呢,哎呀,停掉,再重新开启脚手架,等会儿啊。好了,这回OK了吧,各位,嗯,那这回你再瞧瞧啊,回到这儿刷新一波啊,服务器一呢,刚才可是艾特硅谷students,这回你注意了啊,别点一点,一会儿又废了啊321走你各位,哎,我问你学生数据回没回来,回来了你看服务器怎么告诉你的,请求的资源是students同学这回明白了诶,这个配置千万不要丢,丢了就废了是吧?各位啊,那我们再说说这后边这两个是干嘛的啊各位,这两个呢,首先说说它啊,这个WS呢,它指的是这个东西,诶,别忘了小逗号啊,这个WS呢指的是这个东西,有同学可能接触过,叫做Y吧,Socket对吧?这个呢,也是客户端和服务器之间的一种通信方式啊在这儿呢,同学,我们不能花费大篇幅的去讲这个web socket,如果说几句话能说明白,就给大家说一下,但是它不是那么简单的啊各位,所以说在这呢,我们就直接说一下,用于支持web socket啊,用于支持web socket,然后再说说它是干嘛的,这个change orange同学这个东西。
11:45
挺有意思的啊,这样我先把它调成false啊,然后我给你描述一下啊,这个东西有什么作用,同学,你刚才所处的位置是多少啊,8080,你把请求先转发给谁了呀,是不是转发给这个粉色的服务器,8080,哎,这个代理服务器,然后最后呢,转发给这个绿色的这个5000这台服务器,对吧?各位,嗯,是这么回事儿啊,就是当你发起了一个请求。
12:10
给了这个代理服务器,我问各位代理服务器是不是得帮你转发这个请求给5000呢,然后这个时候你听我说5000这台服务器啊,就问了一句啊问谁呢?就问这次请求啊,就问这次请求说请求你好,我想问一下你来自于哪里啊,如果这个画圈的这个橙色的箭头,他实话实说,那他就会说啊,我来自于一台代理服务器,并且端口号呢,是8080,诶这是他如实回答,那还有一种就是他撒谎。这个5000服务器问他说你来自于哪里啊,然后呢,哎,他想一想,他说哎呀,好像我不能说我是8080,万一我说我是8080,他不愿意让我请求他怎么办呢?哎,他就撒谎了,他说那你是哪儿啊?服务器说我是5000呀,他说好,那我也是5000,也就是说他说谎。哎,就通俗点说,他说不说谎这么一件事儿,如果你写的是true,各位他就说谎,哎,这个服务器不是5000吗?当他问你的时候,说你来自于哪啊?哎,我也5000,但如果你调成false,各位他就是如实回答他不说谎,好,我们测试一下,现在呢,我给它改成false,然后呢,停掉脚手架,重新再启动这脚手架,然后呢,我回到这个服务器里面,我把这句话呀给你解开啊,叫做请求来自于啊,请求来自于就是我刚才说的,人家问你一下,还说你来自于哪儿啊,哎,就这东西好,那服务器一呢,停掉重新启动啊,或者这样干干净净的重新启动,瞧效果啊,各位回到这边刷新一波,我要获取学生信息,走,你信息是不是来了,看服务器一的输出。
13:49
啊,这没啥说的,说有人请求服务器一啦资源是杠students,看这同学哎来自于哪local house的8080同学,他是不是实话实说,但是如果说你把这东西哎改成车,他就学坏了,他会说谎了,瞧着啊,脚手架停掉,重新启动脚手架。
14:09
等会儿啊。诶启动完了吧,各位看效果啊,刷新我还是想获取学生信息,走你信息是不是回来了,哎看服务器一说什么同学,瞧你刚才是不是8080,现在呢是不5000,哎有没有一种感觉,同学他说谎了啊,就有点像赵本山演那小品啊,你多大鞋我多大脚啊,那这儿的意思就是,诶你是什么端口,那你问我的时候,哎,我就是什么端口,你不是5000吗?哎,我也5000对不?哎那你说同学这个东西是加着好还是不加好,或者说为true好还是为false好,生活中呢,撒谎不好,但是在这儿呢,撒谎好对吧?各位,诶你说万一有一天这个5000这台服务器人家做限制了呢,对不?所有来源不是5000的,我都给它回绝掉,那你不废了吗?哎,所以说这个东西呢,一般来说我们咋的给它写成真,但是我告诉大家啊,就是这个配置你不写默认也是true,这个配置你不写默认也是true,但是在react的脚手架里面,如果你不写这个东西,那它可是,哎,默认值是false,但是在这儿为真啊。而且同学我刚才吧是用最。
15:15
通俗的语言去给你讲的,哎,说请求来自于哪里,其实同学请求来自于哪里,就是请求头中的host字段,哎,所以说在这呢,我给你写这么一个注释啊,叫做用于控制请求头中的host值,哎,这么写呢,比较标准,OK啊,那同学你说我想配置多个代理怎么办呀,太简单了,直接把这东西再给他复制一份,但是别忘了这个小逗号,这回呢,同学前缀,你说你能还叫艾特硅谷吗?那肯定不能啊,你换一个呗啊,你比如说叫做这个叫做DEMO行吧,嗯,然后在这那就得改啊,把DEMO啊杠,DEMO都得变成空字符串,这回转发给谁?5001吗?同学们,你说这回我是不是就可以获取汽车的数据了?哎,OK,来,我们试试啊,各位你得把这儿呢给它停掉,还得再重启,不要觉得这儿烦啊各位,因为脚手架的配置你又不是天天改嘛,对吧,哎,咱不是讲这儿嘛,就得总改这配置,稍微等一会儿啊。
16:15
好了,OK,那这时候呢,回到这边,同学我再来一个按钮,这回就敢写了,获取的就是汽车信息呗,啊,那在这呢,CR对吧?Cars c呢,大写,诶大写好了,复制用这个的基础上直接再来一个,别忘了这个小逗号名字换一下get cars同学告诉我这怎么写杠DEMO,然后要谁呢?正常怎么写cars,对不?OK,这就行了呀,那你看效果呗,回到这个页面里边刷新一波获取学生,那你打开就是学生信息,获取汽车,那你走就是汽车信息,一个都不丢,对不对?同学你配置多少个代理都无所谓啊,而且再给你验证另外一件事,同学你说我要的是不是students,其实我自己这有没有students,有,但是他不会给你了,为啥呀,你都已经加上前缀了吗?你说的很明白呀,只要带有杠艾特硅谷的就强制转发给5000,说老师,那我就想要这个吗?好呀,别加这前缀,他就不走代理,加上前缀就走代理对不?各位。
17:16
好,我不加,回到这边刷新一波321走同学你看a abbcc是不是我们之前所写的那个students里的内容是不?各位你看这不就更灵活吗?是不?哎,给大家总结一波,同学read密文档同样的套路已经给大家写好了啊,打开这个笔记里边的最后一个脚手架配置代理方法一就是在view.con.js里面追加如下配置即可,哎,很简单,DV server pro直接写地址完事啊。那这种方式的优点就是配置简单,你不可否认人家配置简单嘛啊,请求资源时直接发给8080就可以了,对不?哎,发给前端就可以了,不用加什么前缀都不用,缺点就是不能配置多个代理,而且不能够灵活的去控制是否走代理啊,那工作方式就是请求了前端不存在的资源,诶,自动就转发给服务器,如果前端存在这个资源,它就不会转发了,这就是我们说的不灵活,哎,也可以说优先匹配前端资源,也就是优先匹配8080那块有的资源好再看方法二啊。
18:16
大的一点是吧,诶,这个杠API1的意思就是匹配所有以杠API1开头的路径,这会儿就是二开头的路径,他给的就是转发的具体的这个地址,对吧?哎,目标的这个,呃,基础路径,什么叫基础路径?就是不要在后边你去写什么students,写什么cars OK啊,基础路径嘛,只写到端口号啊,那这个change origin大家知道是干嘛的了是不?那这个pass呢,也知道是干嘛的了,而写同学你说这东西能不写吗?不能对吧?然后这个change origin呢,为车的时候服务器收到的请求头中的house呢,就是诶5000,说白了他上啊,他撒谎了是吧?哎,那这个false呢,就是他不撒谎,实话实说呢,就是8080 OK,那在这儿呢,默认只是true,也就是说这个你可以不写啊,那这种方式呢,就是优点可以配置多个代理啊,而且呢,可以灵活的控制请求是否走代理,想走代理加前置,不想走就别加完事儿,对吧?缺点就是配置呢,略微繁琐一点,而且就是请求资源的时候呢,必须得加前缀,反正同学各有利弊吧,看你是什么场景。
19:16
是不,你要想简单配置一下,用方法一是不就行了,哎,但是你得保证同学你这里边儿的资源不要跟你请求的后端资源产生重复,是不是,哎,好了,那这一小节呢,我们停一下。
我来说两句