00:00
来诶下面呢,我们来这个呃给大家说一下这几个方法啊,我们用的这几个函数,用的这几个函数到底是干什么的,我像我们刚刚创建的这个服务器,通过这个在地址栏输入一个地址呢,就可以把我们这个呃输访问的这个地址给大家打印出来,同时呢,在这个浏览器端呢,给在。大家看到了一个hello word,那这个包括这个处理器函数,刚刚有学说了,这个东西是固定的吗?不是啊,这个名字嘛,这个函数名随便写啊,随便写,那么这里边这个参数是固定的,你不能写其他的,哎,那什么这个才是一个处理器呢?以及这个下边我们问方法,Main函数里边写的这个,呃,Handle fun啊,还有这个less and serve啊,这方法到底是干什么的,我们来看一下,我们去看一下官方API。有官方的文档,然后我们连着网呢,我们就用一下是吧。点开它,你们用的是这个中文的吗。还是用的这个。
01:02
我来能上去,我我有我有这个对,我有谷歌访问助手。你们应该也有是吧,没有是没有,我一会发给你,对这个这个谷歌嘛,这个其实我现在发现装了它也也没有什么太大的用处是吧。好了,那我们来看一下这个标准的中文库,我们找到那个net http。Net点开它,你们用过这个net是吧?Net来我们往下翻,我们来找一下啊,我们刚刚用的这个呃方法。Handler这个handler handler这个单词什么意思?处理器对吧,处理器啊处理器,然后这块有一个啊handle啊handle这个fuck,我们来点开它,点开它来看这块啊,它是一个一个适配器,适配器通过类型转换,让我们可以将什么普通的函数作为HP处理器使用,也就是说这个它是一个适配器,啥意思呢?就是你你这个后边后边不是传了一个,我们调它的时候不是前面传了一个啥呀。
02:14
传了一个这个,呃,路径后边是不是传了一个处理器啊,对吧?呃,传了一个处理器,然后我们继续往后看啊,如果这个F,呃,如果如果F是一个具有适当签名的函数,那这个适当签名,哎,就是我们上面写的那个handle德ler,比如我们这个例子上边写的这个,哎,这就有适当签名,也就这里边这个参数呢,你不能乱写,你如果乱写的话,就不符合它的规则了啊,有适适当的签名,就是这个参数必须得是这个,哎,我们指定这个,那这个时候呢,哎,我们继续来看啊,这时候呢,它就通过调用这个F来实现这个handler接口,来实现这个handler接口,那这个handler handler接口我们可以往上翻一下,刚刚我们也看到了啊。来看在这这这是一个interface,你看它里边是不是有个方。
03:03
是有一个serve serve htb对吧,那这里边的参数是不是response write和这个一个request,一个指针,对吧,块这个值,也就是说啊,呃,这个如果你要创建一个这个处理器,也就是处理器你必须得这个是不是实现这个,呃,425HTP这个方法呀,一会我们再创建服器时候会有这种方式啊,会有这种方式,哎,就是说你要是这个处理器必须得这个实现这个方法,嗯嗯,Solve hb这个方法啊,搜B这个方法,那我们一会会说这种方式啊,因为这个创建服务器的时候,这块是这个,呃,处理器函数,当然呢,我们也可以通过这个方法的方式来创建一个处理器,就是我们可以自己写一个结构体,比如MY,什么handler,然后这个那个结构体只需要实现这个so,呃,So htp这个方法就可以了,它就能是一个处理器了,就能是一个处理的,我们这个这样写是一个简单的方式啊,就是写一个处理器函数调这一个handle fun这个方法,其实还有一个handle方法,还有handle方法,这个里边哎都是有的啊。
04:01
咱们往下翻啊,来再找到那个,这是这个handle fun这个方法,这是这个色HTPHTP这个嗯,里边传一个w the response writer,还有一个R,哎,这个request,一个指针,就是我们刚刚写的那个啊,刚刚写的那个就是这一个,还有一个我们把那个也看了吧,就一个handle。你们来再点开它啊,用这个帆,嗯,再往下拉。所这里边这个你你这个没事的时候,你可以点一看一下,这里边的方法分别是干什么的啊,我看网上补一个个给大家看看,找一下那个。我刚看的是。I ha funk。呢?嗯。啊,在这啊,哎,Serve max哎,就是我们这个呃,多路服务器里边啊,有个这个呃,这个方法handle,哎这里边呢,前面这个pattern string就是传一个你的这一个映射的一个地址,比如斜杠什么什么哈,啊斜杠其他的后边这个handleler handleler一看就是啥,Handler是不是就是一个处理器啊。
05:19
对吧,就是一个处理器,这个handle动呢,注册HP处理器,诶hand handleer和对应的一个模式的pattern,也就是哎它这个呃注册一这样的一个就是后边传的一个处理,呃这个处理器,然后前面呢,就是你要映射的那个请求一个地址了,有一个斜杠hello,这个斜杠hello交给哪个处理器来处理,然后这个斜杠什么hello word就给哪个处理处理器来处理,如果干模是已经注册有一个处理器,那么它会这个panic就会报错啊会报错好下边这块也有啊,你像这个呃,这个server max,呃这个里边它也有这个handle fun handle fun也是传一个这个路径,后边呢也是传一个这个你自己写的那个处理器,处理器函数handle,我们刚刚用的就是这种方式啊,掉了这个方法,等一会儿呢,我们也会用用这种方式来处理一下这个请求啊。
06:05
另外呢,我们再来看一下下边这个less and serve这个的方法到底是干什么的,它也是HD里边的一个方法。我们也看一下啊,我们再点开它吧,我们不不往上翻了啊。找一下那个listen。Listen and so。啊,在这啊在这我们来点开它下边呢,就是我们这个刚刚写代码的时候,这个弹出的第二个方法,第二个方法里边会传一个key file,就是你那个,因为它是安全的一个HD,呃,2.0h2.0是一个安全的协议嘛,你需要有那个呃,公钥啊,还有私钥啊,需要传那个公钥和私钥,我们来点开它啊,点开它来看一下less and so,监听TCP地址address,就是我们写的那个什么端口号,你要监听哪个端口号,8080啊,什么8989啊,或者什么10086啊等等啊。并且会使用这个handle的参数,就是后边是一个这个处理器了啊,调用色函数哎,来处理接收到的一个连接,Handle参数一般会设置为这个new,此时会使用这个默认的呃,Server max就是这个多录的啊,使用这个默认的多录复用器,当然了,我们也可以自己来创建它,诶自己创建这个呃,Default serve,呃,这个server max啊,自己我们也可以创建它,也是直接new的方式就可以了,诶这个这个包里边呢,也可以给我们提供了这种方式,一会呢我们也会说啊,等我们这个一会自己写的时候呢,再再来带领大家来看这里边的方法啊,这里边吧,像这个servermarkx提供一个newrmark,就是这个你可以自己创建一个,然后来调里边的方法,那当然了,你自己创建完之后呢,再调那个less and serve的时候,里边就不用传new了,诶直接传你自己设定的这个多路复务器就可以了啊,多路服器就可以了,好,那下面啊,我们就来,呃,再来继续往下看,看一下这个服务器的一个创建啊,创建这个方式。
07:57
这里边也说了啊,够提供了一系列用于创建外部服的一个标准库,而且呢,通过够创建一个服务器,这个步骤呢,非常简单,诶我们就写了那两行代码,诶其实啊,就写了那两行代码,其实最重要就是下面那一行监听路由,诶监听完之后服务器就可以启动了,其实上面呢,我得这个映射一下,到底它处理那个请求,调用那个哪个处理器,因为这个服务器创建好之后呢,我们知道有一个多路复应器,诶你如果不传那个new,是就是这块啊,我们这块呃,服务器创建好之后,如果你这块传的是new,它就用这个默认的一个多路复行器了,当然了,我们也可以自自己创建,不过诶没有这个必要啊,一般用它默认的就可以了,也就是我们上面这个图,我们再回过头来看这啊,这块有一个多轮复行器,有个多轮复器,诶默认的就是那个default sx就是那个,当然我们用它默认的就行了嘛,但是呢,有了多轮复行之术呢,它就跟是一个调度员似的啊,你这个请求来了之后呢,我到底让谁来处理,你需要有这个处理器,那这个处理器我们刚刚写的那个hello word里边那个handle呢,就属于那个处理器,对吧?那。
08:57
那我们这个慢方法,呃,这个第二行慢方法,这个第14行就是这一行代码,其实就是来映射那个请求地址的,你这个请求过来之后呢,我调那个处理器,所以呢,就是由这个多路服务器来调那个这个处理器来处理你的请求了,在这一块啊,我们来继续啊,继续往下看,哎,只要通过诶创建服务器,只要通过这个net HT包里边调用这个lesson and serve这个函数,并传入这个网络地址以直负责处理请求的处理器就可以了。所以啊,在我们购物这块呢,创建服务器还是比较简单的,不像其他的啊,还得导其他的账号,或者是来用其他的这个方式来创建一个服务器啊,如果网络地址参数为空字符串,那么呢?哎,这个默认会使用八零。
09:39
这这个其实啊,你平时上网的时候,你访问什么3W点百度点com,包括其他的网站,是不是他用的端口都是八零的。对吧,你看啊演示一下,我们有网就是好。诶,这是不是就可以访问百度了,对吧,那在后边后边加个端口八零可不可以访问呢?诶。
10:03
怎么没办法访问呢?这个啊,它默认的,诶,就是这个八零啊,怎么怎么访问不了了呢。这个默认的端口号,哎,就是八零啊,就是八零这个。怎么?对啊,应该可以访问的啊。怎么无效啊,哎,难道是这个啊,HTTP安全的这个协议的问题吗?正常来是可以访问的啊,可以访问的,因为这个默认的,如果你要不指定这个端口号,默认的它就是八零,但是八零端口号可以省略,可以省略不写,也就是说如果如果这个我们自己less and45那块如果不传的话,它默认就是八零,那八零呢,也可以不写,可以不写,如果这个处理器为哎为这个处理器参数,也就是我们后边license色第二个参数,第一个参数如果不指定,默认的端口是八零,第二个如果不指定,哎,就是那个new,哎,那么这个服务器呢,将使用默认的这个多路服用器,就是这个default server max,我们刚刚看到那个官方文档的时候啊,诶它上面也说了,诶,默认的用的是它,诶当然了,我们也可以调用这个new s max函数来创建一个读数服务器,就是我们自己来创建了,就不用它默认的我们自己也可以创建,哎创建完之后呢,那这时候呢,再调less and serve的时候呢,第二个参数就不能是new了,那要是new还是应动默认的,如果诶就得用我们自己new的这个S。
11:26
判so ma了,一会我们就来说这种方式啊,输录服用器接受用户的请求之后,根据请求的URL来判断使用哪个处理器来处理请求,那我们为什么写上面那一行代码,就这一行,哎,就是让这个多轮复用器来去找哪个处理器来处理这个请求,那这块有个映射吗?诶,你这个处理的请求的个地址是什么,后边调用的哪个处理器,所以啊,就是通过它,哎来进行调用的啊来进行调用的,好,那下边这块2.2这块就是使用这个默认的多路复用器,我们这个刚刚写那个hello word也是用它啊,也是用它,哎写了一个这个handle德ler里边这个参数,哎,必须得是传它啊,就是指定的一个。
12:04
哎,签名的你不能乱写,你写一个它就不是处理器了啊,就不是处理器了,你这个参数签名的必须得是,它必须得是啥,还有如果这个处理器呢,有说这个处理器,处理器不是必须得实现那个445HTP那个方法吗?我们刚刚看这个文档的时候,对吧。但是他没有实现呢。Serve handler handler,你看这里边是不是有一个serve http方法呀,诶如果要处理器呢,你必须得这个实现它,那必须得实现它,我现在也没有实现呢,注意。这个啊,这个呢,Handle Fung这个方法呢,它能帮你进行转换,如果你要调这个handle方法的时候,那后边你传的那个必须得实现那个45HTB这个方法啊,一会我们就写那种方式啊,一会就写那种方式,你调这个方法的时候,哎调这个函数的时候啊函数的时候,哎这个handle fun调这个函数时候呢,它能自动的哎把你这个哎转换成啊转换成这个处理器中间有一个过程啊,有个过程,如果想这个直接,哎就是呃,那是个接口嘛,哎handle了是一个接口,你这个你的这个结构体呢,必须得实现它里边那个方法,它这一个处理器,那我一会我们再来写那个啊,你要调它的话,它能自动的帮你来转换,就是它自动的可以帮你转换,它也能处理我们的请求,但是这个参数你要注意,必须得是这个类型。
13:22
好,这是我们刚刚写的那个啊,刚刚写的那个,呃,这个通过什么处理器函数来处理你的请求,就是我们写的那个hello word,嗯,还有另外下边的这个handle fun,这个说明我们刚刚也看,已经看到个官方文档了啊,这个就不看了啊,这个不用看了,好,这个处理器函数的一个实现原理我们来看一下,构员拥有一种呃,Handle fun函数类型,它可以将一个带有正确签名的函数转换成一个带有方法F的一个handle了,也就是说虽然啊,你没有这个,你没有自己写来实现那个呃,那个方法,但是呢,这个函数它有一个功能,就是把你那个,比如那个类那个函数,哎,把你那个函数,只要你那个签名是我这个指定的,呃,Server server htp里面那个。
14:04
签名跟那个格式一样,我就能帮你转换,也就是它这个作用就是把它把你的一个普通的函数呢,转换成一个处理器了,那就是这个意思啊,这个意思哎,它能帮你转换成一个这个处理器,那好,那下面呢,第二个就是使用这个处理器来处理请求了,比如这块我自己写了一个my handler,那我要自己写一个这个结构体my handler来结构,我写了一个它如果这个它能作为一个处理器,是不是必须得实现那个色5HTP那个方法呀,对吧,所以呢,下边哎来看这会,诶放个这是方法对吧。方法跟函数的区别是什么呀?不想了。方法跟函数的区别是什么呀?方法是不是那个方法面前面有个括号指定的,那是什么类型的对吧。就是有括号啊,我这个呢,诶是这个my handle,这个my handle的一个这个这个这个方法,那如果要没有它。
15:05
就是一个函数了,对吧,就是一个函数了啊,这是你们这个构基础里边讲的啊,构基础里边讲的一个方法,好,那现在你看啊,这个方法,呃,这个方法名字叫serve serve http,那我们看到的那个接口里边是不是有这样的一个方法。对吧。这个在我们够里边,然后实现那个接口,是不是只要实现那个方法就可以了,对吧,是不是就是我们实现的那个接口啊,对吧?所以呢,那这后呢,我这个呃,上面这个结构啊,My handle了,就相当于是下那个接口,这里边有个serve http,那好这里边啊这个这这句话你就是随便写了啊F这个写什么都行啊,最终呢,它会在浏览器上显示出来,我们这个之前写的是hello word,并且呢,把这个地址打印了一下,我们现在就是没有打印这个地址,好那再再往下注意。再往下我们再写,这个时候呢,哎,Function man,这里边有个my handler,诶。这是干啥呀?是不是结构体实例呀,对吧,然后下边这块呢,掉的就是handle方法了,哎,不是那个handle fun了,哎handle方法诶后边呢,就是传一个处理器了,传一个处理器,传一个处理器,我们说那个,呃handle fun那个可以干什么呢?将你的一个普通的函数给你自动转换成一个。
16:18
处理器,但是呢,对那个函数的参数是不是有要求,必须得什么什么类型啊。是不是必须得是HTp.response writer类型,以及是一个HTp.request一个指针呢?对吧,只有是这这样,呃,这这种的这个函数我才能帮你转换啊,如果不是这种的,它是不能帮你转换成一个处理器的,那现在我们这种方式就是自己来写这个处理器了,我用了一个这这个创建了一个结构体,然后呢,我实现一下这个handle handle了,就是处理器里边这个so htp方法,哎里边这个参数肯定是人家那个啊,实现完它之后呢,下边就调这个handle就可以了,哎,这是正常的处理请求这块是一个地址,然后后边就是你自己写的那个哎处理器了,哎直己写那个处理器了,好哎,那下面啊,哎下面呢,我们就来写一下这种方式啊,这种方式,但是注意最后呢,我创建的那个调用那个lesson and serve里边是不是传的还是new,也就是说用的是不是还是那默认的多路复行器。
17:12
对吧,哎,还是那个默认呢,哎,我们刚刚说了,我们也可以自己创建,那下边这种方式呢,就是自己创建的啊,一会我们再来说啊,一会再来说,就是这个色会这个结构啊,这这个结构,哎,我们再再来往下看一下啊。啊,这是这个呃,具体的来设置这个地址啊,设置这个地址也就是对服务器里边那个路径啊,Handleler啊,包括这个是否超时啊等等,就是对呃色五这个服务器里边这个详这个参数的一些详细的配置啊这个是我们先把第二个来先写一下啊,我们再来这是一个web APP。我们再来创建一个吧文件夹。外边零二了啊,再来整一个。来右键新建一个文件。Package。
18:01
PKD,好,来import导一下包。打一个MMT。的一个net http,好,下面呢,我们来整一个结构体tap。讲一个什么呢?My handler,哎,我的一个处理器。好,然后是。好,就这样啊,里边也不给他什么字段了啊,就这样了,诶刚刚的这个。没了哎没了,我我也保存啊,它用不到,它能自动的帮我给干掉啊,给他干掉,好我们来写一个这个方法括号,诶写一个什么呢?M。My handler。这都能看懂吧,但是这个方法名就不能乱写了,是什么呀?H。HTTP吧,诶servev http哎里边这是不是要实现。
19:00
实现什么呀?是不是实现这一个handle里边这个solve htp这个方法呀,诶对吧,哎,要实现这个方法啊,Solve htp这个方法啊好。接口里边的方法啊,就实现那个接口啊,实现那个接口,这样是是不是就相当于实现那个接口啊,对吧,好W。HTTP点一个writer。逗号二新HTTB点一个request request好。好,在这里面呢,我们就可以来写这个,哎,我们想要干的事了,比如呢,我在找一个fmt点一个。Print。好,括号里边我们传一个W,然后后边我们就写一个汉字了啊什么呢?呃,通过这个。自己。创建的这个处理器。处理请求,好,就写这样的一句话了啊,就写汉字了,好保存一下,这是我们这一个,呃,写了一个结构体my handler,然后下面呢,来我们写一个main方法,Main函数。
20:13
拿住。好在这呢,同样哎,我们这个时候调的啊,就不是那个handle fun那个函数了,HTTP点一个handle。同样来映射的一个地址,我们这个写详细一点吧,比如这个my handler,好,那也就是说你在浏览器访问my handle的时候,才能调用我们写的这个处理器来处理请求,好逗号,那后边写啥呢?是不是该写这个一个实例了呀。诶,对吧,它的一个实例,那所以呢,在这,哎,我们来嗯,My handle了,这还得有一步。My handler等于等于什么呢?My handler。然后这里边儿呢,我们来传一下。
21:02
怎么写啊?是这样吗?是不是是不是这样啊。好。逗号,找到一个逗号,逗号保存好,然后下面的路由HTTP。点一个listen and。端口。8080好,后边呢,我们还是啊new哎new哎,还是用它一个默认的一个多路复用器,哎,多路复用器一会我们再来自己创建啊,再来自己创建好诶那现在呢,诶我们这个,诶这块怎么报错了。啊,R没用是吧,R没用。哦,错了是吧。好了啊,诶,这是一个我们自己写的这个处理器,我们写完了,好下面呢,我们就来让他来处理一下我们的请求,那这时候我要在地址栏发请求,这个请求地址应该是什么呢。
22:08
斜杠我们也看到了吧,不能是其他的了啊,不能是其他的了,好,我们把这个呢,CTRLC一下,哎,把这个先关掉,关掉我们来运行我们这个啊WEB02。你WEB02,我抄你哪了?怎么穿在它里边了?拿外边啊。移动好。来诶右键我们在终端打开。你怎么卡了呢?哎,这个电脑没有我之前的好,但是呢,这个。这个我之前的啊,我之前的那个叫那个是神州的。I7的比这个性能好,但是没这个牌子好是吧,这个是ThinkPad的卖点,Exe。
23:04
好,我们把伏起一下好,起完之后呢,来我们在这呃访问,现在呢,哎,来允许现在呢我刷新。我是不是处理不了这个请求,对吧?哎刷新一下哎404了,哎配放的没有找到好,那现在呢,我们需要请求一个MY。Handler。哎,这个时候呢,哎才可以调用我们写的那个处理器来处理请求,来处理请求,所以啊,这个在我们购物这块呢,创建服务器呢,很简单很简单,如果我们用的时候啊,其实用到这个呃最多的呢,就是我们刚刚写那个hello word那种呢,还是比较方便的啊,直接写一个这函数哎就可以了,不用再写什么结构体啊,然后再实现这个呃,那个handle德的那个接口啊,所以啊,这比那不是写的要代码要多嘛,所以这个你也知道一下啊,我们也可以自己来创建这个处理器,诶什么是一个处理器,也就是只要实现了这个handleler呃这个接口啊就可以啊handleler接口就只要有这个呃,HTTP这个方法,嗯。
24:02
就可以了啊,就是一个汉字了,就是一个汉字了,诶就是这种,另外呢,呃,还有也就说如果我这个服务器里边那些信息呢,我想详细配置一下,这个时候呢,该怎么来创建这个,呃服务器呢,也是可以的啊,因为现在这个端口呢,我是写到这个listen and serve这个里边,那当然了,我们也可以不写到这里边,在服务诶在这个server里边来进行配这个端口号也是可以的,那这时候我们来看一下啊,先看完之后呢,我们再去这个官方文档看这个server啊,我们不看我这个截的这个图了,我们再来看啊,我们还可以干什么呢?通过这一个呃,SERVE5这个结构对服务器进行更详细的一个配置,我们刚刚呢只是一个端口号,那我也可以再通过这个server这个结构再配一下,哎,这个里边的一些其他的信息,我们也可以来进行配置,这都属于这个创建服务器里边的一些内容啊,所以呢,这个下边这些呢,也了解一下这一块是我们这个server这里边这些字段,这些字段。
25:01
我们这个我们就看这个了,也不点那个了啊,诶,就看这个了,这type server struck的一个结构体里边呢,有各种各样的一个字段,我们来看一下,第一个address string类型的,就是监听DCTCP的一个地址啊,如果为空中导,会使用这个冒号,哎,HTP下边这个handler handle了,是不是就是处理器对吧,调用这个处理器,哎,如果we knew会调用这个HTP的default serve max,哎,会调用这个默认的,然后下边这个read time timeout,这啥意思啊?超时啊,嗯,超时啊,这些字段呢,你看应该就能看懂是什么意思啊,后边,而且它也有注释啊,也有注释,还有red太out什么的写的一个超时,包括下边有好多什么l log啊,这个错误的一个日志啊等等啊哎不一个个读了啊,那我们也可以干什么呢?呃,通过这个呃,创建这个server,这个它的一个实体,然后呢,详细的配置里边的这个地址啊,包括超时的时间呢,包括处理器啊等等,哎都是可以的,那下边这块我们这个代码呢,就是对那块的一个详细的一个配置啊,同样呢,我这块有个结构体,我自己的一个handle了,哎,我又自己写了一个自己的一个方法,自己一个处理请求的一个,呃,Serve serve htb啊,在这里边自己写的,自写的,然后下边这个main里边,你用这个创建了一个实例结构的一个实例,下面是对server结构。
26:21
哎,通过这个server结构对服务器进行更详细的一个配置,哎,来看了一个server,哎。等于哎,HTP的一个server,然后设置这个地址8080,同样呢,Handle了,我让我的这个处理器来处理,哎,来处理这个请求,然后下边这个read time out,是不是这个超时。对吧,time.second这是啥呀?是不是time这个包里边的库里边的一个秒对吧?哎,秒啊,哎,那这个是不是就相当于两秒啊,哎,两秒就设置下那个读的超时间,你不能一直读啊,所以呢,我设这个超时时间啊,当然了,你也可以设置一下其他的属性啊,其他的字段,其他字段都是可以设置的,我这里就设置这三个啊三个这是设置一个更加详细的配置,然后下面就用serve,用你的这个服务来调这个lesson and serve这个方,哎,这个方法了,哎,并不是直接用HTTP里边那个lesson and serve这个函数了啊,并不是那个了,那有同学这个serve里边有没有这个方法呢?我们来看一下。
27:20
来啊,我们点开我们这个标准库,我们找到那个。Net htp,我们找到那个serve,那个结构体。来看一下。哎,来看serve里边是不是也有一个方法叫lesson and serve,是不是里边就不需要产参数了,对吧?为什么不需要产色数呢?因为这个时候你在实例化这个,呃,Serve就是这个server这个服务的时候,里边是不是已经配置进去了,顿号也有了,处理器是不是也有了,对吧?所以这时候啊,你在调这个less and serve的时候呢,就不需要传这个了啊,就不要传它是了,你看其他的调安全的时候,你需要把这个key传进来,传进来好,这是这个啊,就是配服务器的这种方式,你可以给这个服务器里边那些,呃,这个呃。
28:04
一些字段字段的,给他再配的详细一点,加一些其他的。我们把这个呢,也给大家演示一下,那这个我就不再创建一个这个呃文件了啊,我直接在这上面来这一个进行设置了啊嗯,My hand有了,然后这个呢,我把这个注掉。点错了,因为这个快捷键跟那个其他的工具呢,正好不一样啊,所以呢,我把这个注掉,注销之后呢,干什么呢,我来创建这个这个serve server。结构来serve。等于。Server。HTTP点一个。Server。好,那里边呢,哎,有好的第一个。Address,比如呢,我整一个什么呢,8080。好第二个,第二个是不是handle德ler对吧?Handle德ler,哎比如呢,哎,我就用上面我自己整的这个handleler。
29:03
MY。含德了,哎,蛮含的了,好,那下面呢,我还可以比如设置一个什么呢,超时。啊,为了。Timeout timeout,比如这一个什么呢?两秒或者三秒二乘以一个time,点一个second second,它能自动的帮我们打包啊,你设置完之后,它能自动的帮我们打包,好就是这个好,那现在有了它之后呢,我们这块也得改了,也得改了,这是我们自己。给这个呃创建思构呃server结构,并给。详细。好。然后呢,这块就加个逗号,嗯,保存一下好诶这是这个啊,Server有了,那下边同样,哎我需要路由,路由呢就不是这样了,直接用什么呢?Server点一个listen and serve,这里边呢就什么都不需要传了,哎,该有的端口号啊处理器啊,哎这里边都有了,哎所以啊这种呢,哎就没问题了啊就没问题了,那这样吧。
30:11
我们把这个呢改一下啊,我把这个呢复制一份。把这个猪掉。这块呢,这一句话呢,稍微改一下啊,通过什么呢,详细配置。详细配置这个服务器的这个信息,嗯,这个处理。来这个处理请求好来就这样了啊,就这样,其实这一块啊,通过你也我们也可以这个来创建一个server,来创建一个server来配置它里边这一个字段的一些信息,详细的配置呢,来处理请求好那现在呢,我们来CTRLC重新编译一下。溜达,慢点勾。然后重新运行一下服务器。
31:01
好,现在呢,我们来发一个请求。同样。刷新一下,哎,这个时候呢,就是通过详细配置的服务器信息来处理请求了啊处理清楚了,但是到目前为止啊,到目前为止,我们这个还没有说就上边这种直接。用的是这个啊,这是用的这个多路复用器,我们还没有自己来创建这个多路复用器啊,创建多路用机,那再往下呢,就是我们来自己来创建一个多路复机了,那下边这些啊,你就了解一下就行啊,了解就行,也就是说这说的这几种你要掌握一种,诶怎么来创建这个服务器这种方式啊,你要掌握一种,有这个有同学可能喜欢这种,有同学可能喜欢那种,但是我我建议啊,诶还有我个人的一个喜好,我喜好我们这个刚开始写的那个hello的那种。Hello的那一种,就直接自己写一个函数,让它调这个handle fun,让它自动来转换成一个处理器就可以了,而且这个多路复用器用它默认的运行了,你也不不必要再创建这个多路复务器了,不过我们也可以自己来创建啊,下面呢,就是我们说的这个使用自己创建那个多路复务器这的方式,诶,我们来看一下在装建服务器址呢,这个方法我们刚刚也看过了,我们还可以通过new server serve max方法来创建一个多路服务器,哎,多路务器也就调这个方法啊那。
32:19
通过这个创建完之后呢,你再调listen and so那个方法时候,里边就不是传new了,直接传你自己创建的下边这个代码,我们来来看一下啊,看一下那这个呢,是不是就直接。是是用的一个函数的对吧?用那个函数了啊,就不是自己写的那个结构体,然后再实现那个handle了那个接口了,好这块呢,我们用一个max,诶HTp.new了so max,然后下边用max哎,点一个handle,你你这块是写的一个函数,是不是就得调这个handle fun这个方法了,让它自动的把那个函数给你转换成一个转换器啊处理器啊对吧?所以啊,这块一定要注意啊,如果是你自己写的一个结构体,然后实现了handle德的接口,那这块是不是掉的就是handle这个方法。
33:05
对吧,哎,如果你是写的一个函数,想让它。变成一个处理器,我们称为什么函数处理器,那这时候是不是得调这个handle fun这个方法了,对吧?所以这块啊,你这个别调错了啊,别调错了,你调它呢,它能自动的把你那个函数转换成一个处理器,诶如果你要自己已经写好这个处理器了,实要实现了那个handle的接口,它就是一个处理器,那你就调这个handle,哎,处理这个请求就行就可以了,就可以了,所以这块啊,这两个不要搞混了,哎不要搞混了就行,然后再往下就是这个HT d.lesson了,传一个8080端口,然后呢,传我自己的一个多路复用器max,就是我自己用的一个答,自己用的个答案诶。那,那你发现了我自己拗过他跟船一个new是不是都能处理请求啊?所以呢啊,我这个拗过它干什么呀,对吧?所以呢啊没有这个B啊,但是呢,你也可以自己拗啊,也可以自己拗,这是这种方式,那我们把这个呢,下边这块就是solvemarkx这一个结构了啊里边什么都没有,什么字段也没有,这块也有个说明,那我们把这个也也看一下吧,我们就不打开那个官方文档看了啊呃,Solve max类是这个AP请求的一个多路转换,嗯,多路这个转换器,它会将每一个接束的那个景的URL与一个注册模式的个列表进行匹配,就说白了就是会根据那个URL来去找这个对应的一个诶多路这个处理器,并调用和URL最匹配模式的处理器,诶最匹配的比如斜杠,诶一个hello,他一看啊那块有个斜杠,Hello,那我就去找他了,就去找他了,那如果有个斜杠,还有个斜杠,Hello,嗯,那这个处理的时候就看见这个发这个请求地址了啊,发的请求地址是什么了啊。
34:39
好,下边这一堆啊,就不读了。再往下就是给大家列出来这个so max下边的一些相关方法,当然了我们官方文档上面也有啊,这个我们就不联网看了啊,直接看它了,一个是handle handle,这是不是就是处理请求的对吧?呃,调查这个方法呢,再传一个路径,再传一个路径,然后后边呢,传一个处理器,还有个handle fun handle放那这块呢,传个路径这块是不是就传一个,后边是不是传个函数就可以了。
35:05
一对吧,这两个方法注意啊,如果你要调handle方法,前面前面都一样,传的都是映射的都是路径,后边这块是传的是处理器,对吧?如果要调这个handle fun,前面是路径,后边是不是只要是一个函数就可以。但是那个函数有一个要求,参数必须得是什么?必须得是response writer和request一个指针吗?对吧,普通的你自己写的函数行吗?不行,所以这块是有要求的啊,因为你调它的话,它能把一个函数给你转换成一个处理器,前提是那个函数的参数类型必须得是这两个,对吧?哎,必须得这两个啊,那这样呢,我们就少省了一步嘛,就不用再写一个结构体,然后再实现那个汉字接口了。所以啊,这个还方式还是比较好的啊好下边这块就是这个handle了了,Handle了,这是处理器嘛,哎处理器那这个呢,哎就不多说了啊好,下面我们就来还有这个sor http,因为你这个诶,这是这个handler处理器里边的一个方法嘛,Server server http,好那下面我们就来自己来创建一个这个多路复务器,诶来处理一下这个请求。
36:14
好,那我们这个回到我们这个web。Web APP里边了啊,我在这里边,这是自己写了一个处理器函数,哎,自己写了一个处理函数,好,哎,那下面呢,哎,我们这个呃,就来创建一个,呃,自己创建一个多路风气。哎,创建什么呢?诶多路。服务佣金来max等于HTTP加一个什么呀,New。是不是marks?哎,对吧,你一个max都没人搭理我哎。你一个max好,那我用完之后这个时候最后呢,创建路由器这块,这还传new吗。
37:00
传markx哎传markx,诶这样也可以啊,这样也可以,这样也可以,诶这块,那我那我这样啊,我把刚刚的那个给你保留着啊,把这个注掉,把它注掉下面呢,来再复制一个。再复制一个,嗯,再取消注释这块呢,我们传我们这个max max这是自己创建的这个多路复用记就不用它默认的了,我不想用你默认的,哎,我自己来用这个so max,哎这样也是可以处理请求的啊,可以处理请求的,那这块呢,我们就来改一下了,把这个想应的信息就改一下了。哎,来把这个呢猪掉。除掉啊这块呢,我们写一句话,哎,通过什么呢,自己创建的多流复用器处理请求。好就这样了,好好啊,这个写完之后呢,我们把这个,哎,把这个给它关掉吧,这个也关掉我们再来。
38:01
多了个大括号吧,那么多个大括号吧,来在这呢,我们来再运行一下,在终端打开,我们来勾build一下。慢点勾。诶,来启一下服务器,慢点exe。好,诶,再来发一下请求。这个请求请求什么都行啊是吧,哎,请求答。咦?我这个请求的应声是啥呀?那不就是任何都行吗?斜杠。诶,怎么怎么回不来了呀。十。哦,哎,对,这应该改成啥。等max用我自己的啊,用我自己的啊,这个忘改了啊,哎,忘改了好诶来,那这个时候呢,我们还得再重新来一次啊,重新来一次忘了改一个地方了啊,忘了改一个地方了,那这个呢,我我把我把之前的那个给你留着啊,复制一份,不用这个原来的啊,就是之前的那个HTTB的。
39:08
好,我们现在用的是这个啊,我们自己的来把这个助调好,诶这个忘改了啊,我们这个创建好这个多路复印机之后呢,我们用的是它调这个多路复印机里边这个函路F这个方法好啊,再来一次。狗的,慢点,Go。狗比我大。慢点够啊,这个欲速则不达是吧,慢点exe好来再来。刷新。好哎,通过自己创建这个多轮复用器来处理请求,好没问题啊,哎,这个由于我后边呢打印了这个ul,所以那后边这个斜杠什么的,再加上它就会有这个ul了啊ul了好哎,这是我们这个创建这个服务器的方式,诶有好多你可以这个自己扭多了动机,你可以用默认的,诶你可以干什么呢?通过这个写创建这个处理器函数来处理请求,你也可以自己来创建处理器。
40:05
那这个创建处理器,这什么才是一个处理器呢?你这个结构体需要实现handle字接口对吧?然后呢,这个函数方法里边那个参数类型必须得是这个response writer和这个request一个指针,哎,这样呢,哎,它才能这个处理用户的请求,那我们也可以什么创建处理器函数,那这种方式就比较好了,但是如果你要这个通过处理器函数来处理请求,调的是这个handle。Fuck这个方法对吧?哎,如果你要是通过处理器来处理请求掉的是handle这个方法,所以这块啊,你不要把它搞混了,我们还可以来这个详细的来设置这个服务器里边的信息,比如什么超时时间啊,什么这个处理器调用的处理器啊,监听的端口啊等等,那这个时候呢,就是我们创建一个server,来创建一个server这个结构体来在那个里边通过字段来详细的配置就可以了啊就可以了,这是我们这个说的啊,这个创建这服务器的这几种方式,哎,还是这个。
41:06
你选择一种啊,选择你喜欢的一种,我喜欢呢,我们这个第一次写的这个ho word这种方式,我来写一个处理器函数,哎,然后呢,哎,这个这块也传new,就用它默认的多路复务器就行了,哎,我也不需要什么在自己new,然后再调多路复务器里边这个方法了,直接都用HTTP这个包里边这些方法啊就可以了啊就可以了啊,其实我们这个创建服务器的方式,我们就说到这啊,那下面的时间啊,你自己呢,把刚刚我们说的这几种呢,你自己来自己测一下啊,自己来写一下。
我来说两句