00:00
嗯,Hello,同学们,那接下来我们带大家一起看看在HTP协议当中还有哪些有用的header,这个header能设置的属性呢,实在是太多了啊,那我们先带着大家来看几个。这是我们没有做任何配置,只是在反应代理的,呃,这种环境下呢,它给我们产生出来的header。这是tomcat通过程序读出来的header,然后这个呢,大家注意看浏览器的,呃,它的这个,嗯,开发工具就是这个命令行cancel里边呢,这里边也有一个request header。这是最原始的header啊,这个最原始的header它呃和我们这个读取的过程当中呢,很明显省略掉了这个get对吧?啊,就这个其实不属于header,呃,真正的header这是在我们之前给大家讲的HP协议的结构当中,它的起始行,也就是你请求的URL或者uri是啥,以及你所使用的协议在get啊这个这行以下才是真正的header host是啥,然后connection是啥?那我们看看它读出来的这些header都有哪些。
01:04
首先第一个呢,这是X for for,这是我们在做呃IP传递的时候,就是获取用户真实的IP地址的时候呢,我们在NG的反应代理服务器当中手动的去设置进去的呃,和NG相连的这台机器的IP地址,对吧。呃,然后再看第二个host http get,诶。这个和这下边儿呢,有点不一样,诶大家看真正的客户机的这个,呃,发起的这个host,它是192.168.44.101。诶,为什么在这变成了htp get,这是NG4啊,它默认情况下它会帮我们去覆盖掉,呃,这个hot的这个值啊,它获取的这个upstream的名称会被默认的给set进去啊,然后再看下面这个programmer啊,No catch,还有这个control no catch。
02:01
这两个呢,都属于和缓存相关的配置,那么也就是在这儿,呃,我们可以利用到一些浏览器的缓存啊,可以去帮我们去缓冲一下啊,这个访问的请求啊,在这的请求的过程当中,有一些像一些经常访问到的一些静态资源,像一些比较小的图片,图标,Icon这些,还有一些CSS啊,引用的一些JS,我们都可以通过客户端啊,有这么浏览器把它给缓存下来,也并不是说每次请求呢,都去把这个,呃。所需要的这些资源全部都从服务器上拉取一遍,有很多是基本不变的,那这个在我们接下来的课程当中会给他着重去讲解,呃,在浏览器里的这个缓存,它能极大的提高我们的系统的并发量,然后再看下边这个upgrade,呃,Inre啊,Request冒号一。这个呢是默认存在的啊,就是Chrome浏览器,它会默认加一个这个头,表示的意思是我们现在使用的是HTTP协议。
03:07
大家可以看一下这个,呃,地址栏这会有一个不安全对吧,因为我们现在呢,使用的是非加密传输协议,那它表示啊,我们可以嗯升级一下啊,就把它升级成这个HTTPS的请求啊,只是告诉服务器端了可以升级一下。然后再看下边这个就非常有用了,叫user agent,这user agent它能表明我们当前这个客户端的这个操作系统所使用的浏览器的内核啊,大家看啊,就moa啊,5.0啊,Windows啊,然后64位的是吧,Up web kit,这都是,呃,一些浏览器的这个相关的一些信息是吧?但在最后呢,还有这个Chrome啊,Safari。啊,但有这个一段信息之后呢,我们就可以在服务器端啊做一些判断,比如说我可以判断一下啊,它是来自于什么平台的啊,比如说你是呃苹果的笔记本啊,还是这个Windows的笔记本啊。
04:05
还是这个,呃,来自于手机的浏览器啊,在这里边都可以去判断出来。嗯,以及你这个,呃,操作系统,那这样判断出来之后,就可以根据这个不同的客户端给你展示不同的页面了,也就是在有时候我们去下载一些APP的时候,你用桌面版的浏览器打开,它展示的页面是一个样子啊,还有就是在这个客户端啊,比如在这个手机端,你用安卓打开,它会给你展示安卓的下载地址。你用iOS的客户端打开,它会给你展示iOS的这个地址,它都是判断这个不同的user agent。来实现的啊,同学们如果有类似需求的话,也可以再去深入去研究一下啊,怎么去通过user agent的去判断这客户端是来自安卓的还是来自这个,呃,苹果手机的啊,当然指的是苹果手机里的浏览器啊,并不是手苹果手机里的APP啊,浏览器会携带这个请求头啊,就user user agent。
05:03
在user agent里边,我们还可以去自定义很多自己想要想要写的进去,但是你也可以伪造这个user agent。然后再看下边这个accept。啊,他能够接受的一些呃请求,比如说tax HTML,这是mime的这种,呃,这种类型,比如我们客户端呢,可以去正常去展示出来这种类型,还有这个图片类型的啊,还有这个。呃,一些这个XML这种类型的啊,就是浏览器可以直接展示出来,就是它能接受的这个返回的mime这种数据类型。然后再看下边这个accept encoding,这里边有一个g zip啊,这相当于把用户的请求呢,嗯,和这个服务器端在传输的过程当中呢,可以进行压缩。啊,这个压缩的过程啊,是在服务器端完成的啊,就是你请求过来,打过来,你想要呃一些数据,或者想要一个网页,服务器端的可以把这个网页给它压缩一下,打成一个包,然后传递给我们的客户端浏览器,然后呢,浏览器再把它给解开,解压缩开,然后再展示出来,对于用户来说其实是无感知的,因为我们现在看的这个页面啊,它就很有可能是通过这个G啊GZP已经压缩过,然后浏览器呢,把我们又给解压开了。
06:25
对用户无感知,那这样的话能够提高这个呃,网络传输过程当中这个数据数据包这个传递的效率,能有效的降低数据传递这个包的大小。比如这个这种压缩啊,对于一些文本啊来说是比较有效的,如果他要传传一些这个图片的话。嗯,其实压缩起来效果并不高,当然在压缩的时候和我们在用本机的这个,呃,ZP或者rar软件也很像,你可以设置压缩级别对吧?啊,这个也是后边咱们会讲的啊,还有accept language啊,他能够接受这个语言是吧,我们期望是使用中文是吧,然后后边这些呢,这就是。
07:07
呃,我们程序自己打出来的,这就不属于这标准的header了。这是一个Chrome浏览器啊,在请求这个服务器的时候呢,能给我们展示出来的这个,呃,能能够我们使用利用到的这些header,那么接下来我们给大家详细讲解。
我来说两句