00:00
嗯,好,同学们,那接下来我们看一下NG反向代理的核心流程,这也是我们在学NG的时候,这个呃,比较核心的组成部分也是在,呃,你这个对N这理解。嗯,比较深的一部分了啊,同时呢,也可以在自己的简历里边体现出来啊,就是嗯,Upstream和这个process pass的工作流程,那么这个工作流程呢,相对来说它比较复杂和涉及到的配置文件也比较多,那么我们就我就把这个整个流程呢,给它画成画成了一张图啊,把这个配置呢,也给它给大家都标记在哪一个位置了,欢迎大家把这个图盗走,然后自己记笔记啊,当然你也可以在这张图的基础之上呢,再去丰富一下你自己的理解。那在首先刚开始的时候,我们的浏览器以浏览器为我们的客户端啊,它会向我们的N发起一个请求,这个请求呢,它一定是HTTP的请求,对吧?那么我们先来了解一下这个HTTP请求里边的这个报文组成。
01:03
HTV的请求的报文啊,它总共分为三部分组成。第一部分呢,就是它的这个请求行,第二部分就是请求头,第三部分就是请求的数据啊,那么这三部分呢,它究竟是啥?首先第一部分这个请求行,这就是我们向呃服务器发起的这个请求的URL啊请求这是UR对吧?然后以及请求的方法URL,这不太需要解释,就是请求百度点com http。3W点百度点com,这就是在这写着呢,这第一行,然后接下来还有这个请求方法,你用get post还是post等等啊任何的方法也在这个第一行里边记录下来了,那也就是说我们所发的任何的请求,他都会把它最终转换成文本的形式。啊,然后再转换成二进制的形式发送给我们的这个NG,由它来解析HTTP协议规定的这个三行数据,啊,那么我们在解析的时候呢,也要按照每行来解析,那每一行呢,都会有换行符,大家看见了吧啊。
02:11
这个换行符呢,就代表这一行它已经结束了,首先第一行里边除了这个请求方法URL,还有这个我要使用的HTTP协议的版本啊,这是请求行,这是第一行,然后第二部分呢,就是请求的头部,也就是header部分。这header部分呢,就是以key value的这种方式,然后一行一行的去记录你所记录的这些request header。比如说我们之前学过这个connection,里边有这个keep live,对吧,或者close。对吧,这就是一个呃,Header部分的东西内容啊,那么呃,我们,呃,比如说想要去上传文件啊,或者提交比较大量的数据,那么它就会在body里边,也就是这个请求体,这是第三部分数据,这叫请求数据啊,只有在post或者put这种方法。
03:00
呃,它会有这个body,你在用盖的方法的时候呢,浏览器会把你你的这个参数拼接成在URL后边这个,呃,以问号啊来区分开,呃以按的符来分隔开每一个参数,这是三部分数据。那么在我们访问一个。站点的时候,比如说啊,你看给大家看一下这个。HTP的这个豹纹。百度吧。我找到这个请求,这之前我们早就已经看过了,对吧,啊这个。第一第一部分这个general啊,这其实就是这个请求行啊,就是这个,呃,我们刚刚看这三部分当中的第一部分就是URL啊,然后这个方法。啊,然后这个啊,以及这个这个嗯。所使用的这个协议的版本,当然它在这里边呢,呃,它不是原始的豹纹啊,它被包装了啊,但是我们可以看到这个request header,它的这个原始报文,它是这样的,从这里边我们就可以看到了,你看。
04:08
盖的方法,然后主机,然后呃。Connection在request header里边都是以key value的方式来完成的,大家看见了吧?啊,这边前面是key,后边是value,前面是key,后边是value啊,包括这个host啊,后边是百度,然后get方法,这就是请求的行,Get是请求方法,然后这是嗯。我们请求的这个资源uri的地址,然后后边是协议的版本号,就表明我现在用的是HTp1.1的协议,那我们现在呢,没有这个request body,因为现在这是一个请请这个这个盖的请求啊,所以他没有body这部分。这就是HTP的一个豹纹的组成,那么接下来呢,我们呃看一下这张图来给大家解释一下NG在解析这个豹纹以及在做反向代理的时候。
05:00
他的这个工作流程,这是header body这两个重要的部分啊,这个请求行业就在这儿就没话了啊。
我来说两句