00:00
好,下面呢,我们来看get与post。请求方式。呃,我们FTP协议里边规定了有八种请求的提交方式,但是这八种啊,说实话。这个我们。能够使用的,或者说我们真正使用的就两种,一个是get,一个是post。所以我们只需要掌握get和post就可以了。先看get请求。那么盖的请求啊。呃,他会讲。携带的参数。放到URL里边。也就是说我们的参数会出现在第几栏,这个我们是不是刚才已经看到了呀。重新来看一下。诶,不是啊。我们看这表单,我们给它改成get。
01:00
重新跑一下这程序啊。呃,直接到error了,为什么?因为我们欢迎页面index页面没有。它没有,就是404啊,找不到啊,所以他就跑到error了,我们现在要的是这个log in.IL。打开I watch。开始监控。张三。走。我们看。是不是我提交的张三123,是不是出现在UI部分呢。地址栏是不是就可以看到啊,那你来你来说一下。这样的话会引发。
02:02
Get提交方式的特点。或者说不足是什么?你想一下,原本我这儿放的是密码。人家显示的是个圆点,不想让别人看到。如果旁边站了一个人。你在输密码呢啊,圆圈的看不到是没错,问题是这儿是不是已经显示了,所以。对于这种输密码这种。比较敏感的数据。你要用get方式是不是就不好啊,数据的安全性是不是就比较低。对吧,这第一第二。他在地址栏里边出现,那我问问你在地址栏里边能不能存放大量的数据啊。他不能,所以get提交方式啊。它所携带的数据量是比较小的。
03:00
叫第二,第三。这里边儿它在地址栏显示的啊。这里边儿只能放字符串数据。只能放这种字符串的数据,你要想往里边存放一个,我们到后边会说啊,你要往里边存放一个对象,它是不能放的。对象数据是不能放的。所以这是引发的啊,他这样的。三点不足。另外还有一点,还有一点什么,大家看这。呃,咱们直接访问这个show页面啊,访问这个show页面,我直接访问他了啊。秀里边儿,我现在不要他了。不要这个了。
04:01
不要他了啊,我把它注释掉。哎。多了,我把它注释掉,因为它出来一个alert是吧,GS不要它了啊。情调。我直接访问。Show。大家看。这是200没问题吧。你再看这。哎。这,这怎么回事儿?这这个这个CSS,这这怎么没东西啊,你看这写什么。你看这写的什么?No request stream for什么意思?No response for catch items。
05:03
缓存。你注意它这里边儿使用了缓存。什么叫缓存?我第一次请求这个文件。哦,我把它是吧,我第一次肯定做了下载,这样我把它关掉啊,咱们重新来。重新来。恩。我现在来了啊,Show点艾没走。感慨。这个请求照常发送。
06:00
可是你看这儿。这俩资源。都没有,为什么?因为这个图片它已经被下载到了。我们的服务端了,这个文件也已经被下载到了我们的客户端了,都下到了客户端了,都从服务端下载了,下载到了客户端了。所以它就不用再下载了。它会使用缓存在哪儿放着呢?在我们缓存里面放着。它能读取缓存里边的数据。这是它的一个好处啊,这就这就这,有同学说这是什么好处?他这个请求根本就没发出去。他就没发这个请求,他你看catch。没法请求,是不是也就没有响应啊,也就是说我对于服务器来说,根本就不知道有这个请求,我也经没有这个响应,是不是就减轻了服务端的压力了。而且用户体验很好,怎么了诶。
07:01
这么快还把图片给我了?其实是之前的图片。让人有一种错觉,好像是服务端给我们的响应很快,其实根本就和服务器就没关系,你读的是本地的图片。所以他。钙的方式。有另外一个很重要的特征。它能够。使用浏览器的缓存。减轻服务器的压力,提升用户的体验。Post在看post。Post,那我改一下它。Post。停掉。啊,烙个印点儿二天猫。
08:06
走。对,现在不用不用记了是吧,我得我得。登陆。好。大家再看。我这提交这个post是跳转到了秀了啊,跳转到了秀了,那你看看这。他的数据是不是存放于我们的请求正文呢?另外大家再看这post是不是有啊,PASSWORD123 your name张三。对吧。它是存放于。我们的请求正文的。这就意味着。我这里边存放的数据,除了说。字符串以外,对象数据也可以放,你注意啊,对象数据也能放进来,而且存在于我把数据放到了。
09:10
请求正文就意味着我里边可以大量的数据。有多大量?理论上没有上限,当然我们也不可能提交这个太大的数据,是吧?数据量非常大。可以上,可以提交的数据量是比较大的,另外呢,还可以提交对象数据。还有什么好处?如果你不用ATP watch。你只从这看,你能看到我提交的用户名和密码是什么吗?看不到。他是看不到的。所以它的安全性要高啊,对不对,所以啊大家看。数据类型可以是任意类型,还可以是声音、视频、图片等文件,那回头我们会讲文件上传。
10:05
这些文件。都可以放到我们的请求正文里边,那这就大了呀,是不是可以携带数据量大,安全性高,但post它不会使用浏览器的缓存。你发出相同的请求。他哪一次都会真正向。服务器发出请求。这儿给大家解释一下为什么get请求的响应结果会被浏览器缓存,而post请求的响应结果不会被浏览器缓存,解释一下为什么?原因呢,有两点,第一个是最重要的。以不同的方式提交请求,目的是不一样的。Get咱不说其他的,光说这个英文单词,Get是什么意思啊?
11:04
得到获取。Get请求的目的是我们的客户端要从服务器下载资源,我要获取到资源。Post呢?Post是上传的。那这有什么区别,这和那个什么和和和这个缓存有啥关系,当然有关系啊,大家想想啊,我get是要从服务器下载资源的,那就意味着我第一次下载是吧,我把数据下载到了。第二次,如果发出相同的请求,要下载相同的资源,你是不是客户端已经有了呀?是不是不需要再从服务器那拿了呀?所以我这时候把它设计成从缓存读取,可以把get请求的想要的一个结果给它。
12:00
暂时存到浏览器的缓存里面,这样的话我就减轻了服务器的压力了。而上船呢?不一样上传,你想想我客户端。通过post方式啊,我上传到服务器一个文件。我第二次又上传相同的文件,我再上传相同的文件,你说我客户端。我缓存你有什么意义呢?是不是?我浏览器缓存,我上传的这个东西有什么意义呢?没意义,所以它是不用缓存。这是最重要一个原因啊,Get一般是用于下载呢,而post一般是用于上传的。另外还有个原因呢。那这个你了解就行了。是否相同的请求,刚才说了,你不管get还是post啊。
13:01
那么你要使用这个缓存,当然只有get能能读取缓存啊,能读取缓存里边的数据,那get。他的数据都是存放在。我们的U里边的,我要比较这一次提交的请求和上一次提请求是不是同一个请求,请求是否相同,仅仅做一个字符串比较就行了,很简单,因为它的整体数据量就很小。而post呢?Post不一样,Post这一次我提交的请求和上一次提交的请求一样,不一样,要做比较的话就不好比较了,因为我post是做上传的呀,我有可能提交这个请求里边携带的数据量很大,我携带是个什么?是个音频文件,是个视频文件。是个图片。你说我还得比较这俩。
14:00
这一次这个图片和上一次的图片。是否相同?说到这儿,我想给大家再说这么一句啊,你能听明白就听明白,听明白啊就。你不用管它,就是网络上对于像音频视频。图像。图片这种文件的。传输是允许出现。不相同的。允许出现?什么叫不相同允许出现?文件数据传输。这个。不完全。什么意思?我上传了一个声音文件,一个MP3。我上传到服务器,只要上传的里边啊,数据在网络上传过程里边,数据出现了丢包现象,只要出现这个丢包不影响整体效果。
15:06
他认为这一次上船是成功的。包括图片一样。只要不影响。图片整体质量出现个别的数据丢失现象,它是允许的。也就是说,它允许出现你上传到服务器,服务器接收到这个文件和你原文件之间存在一定的差异。他允许。所以这就没法比了呀,对不对,这是第二种,第二个原因啊,这个原因了解就行了,就是post方式。提交的请求,这次请求和上一次请求这个比较。难易程度不一样,这个比较比较难,相同的比较是比较难的,或者说post这种根本就没办法进行比较。而get的请求,这次请求和上一次请求是否是同一个相同的请求很好做比较,就是做一个字符串比较就行了。
16:11
好,这是。我们get。请求啊,能够被缓存,它这个响应啊,能够被缓存了,而这个不会被缓存原因。好了。那么我们看一下。我们默认的请求的提交方式。常见的有五种。这五种什么表单请求2X请求。地址栏里边直接输入地址的请求,超链接请求。还有什么src资源路径的请求,Src资源路径啊,就我们你看。我们这个里边。这是HRC吧是吧,图片的是不是文件的是吧?还有这种HREF的HR,这是算超链接里边的吗?
17:07
包括我们CSS里边,CSS文件里边是不是还有背景图片呢。这都是。像这种。这都是请求啊,这些请求里边只有两种,表单请求和阿贾克斯请求,里边可以指定post。其他都是盖请求。这两个默认的也是get请求。你如果想采用post请求,必须得显示的给它指定是post。什么意思?这我们大家应该知道,我这如果把method删掉。那他的请求提交方式是什么?当然是get呀,对不对,我们看一下我保存了啊。啊,更新的。
18:01
啊,这个不更新。我们看这。我现在烙个点儿。At TL。打开t watch。走。看他什么请求是不是get呀,它默认就是get啊,默认就是get,我还给大家加上好。也就是说,Post的形式就两种,这两种还需要专门的指定。那么我们在。写程序过程里边。如何选择用post还是get呢?你看着啊,如果我们具有以下这几种情况之一,就选择post,其他都用get第一。
19:06
我们提交时所学到的数据不是字符串。你要带的是什么啊,是个文件。是个文本。是吧,是个声声音,那不是或者是一个对象。它不是字符串,那你就得用post,如果携带的数据量比较大,那你也要用post。如果数据比较敏感,安全性要求比较高,那么你用post。另外我这儿再给大家说一句啊。Post提交的安全性。要高于get,不仅仅是你提交的参数是否可以显示到。地址儿上。还有什么呢?还有这个啊,我们到后边讲的时候会给大家再说到。
20:02
后面so,你在接收的时候啊,你的接收的时候,你需要指定你是。接收的是get请求还是post请求?如果说我这指定是只接收post get,我不接收。POS的请求我就不接受,那就意味着什么?意味着比如说啊,我这儿有个登录。一个登录表单。我这儿给你提供了一个登录表单,登录表单上给你写的,大家看登录表单上给你写的是post,也就意味着什么,我让你以post方式提交这个请求,那我那边就我那个就只接收post。这种请求了,而你是一个电脑黑客。很厉害啊,你根本就不走,我给你提供这个表单,直接你从地址栏就来访问了。
21:03
你直接绕过去我的这个登录表单,直接从地址栏。金融地址就意味着什么?你这边提交的请求方式是什么?是get请求,我那边根本就不接收。我只接收post。所以你提交方式不对,那肯定我就认为你是什么,你是非法用户啊。当然有同学说他既然是黑客,那他再写一个表单不就行了吗?指定post那也可以啊,但我说了,那这种方式最起码可以验证出来,你提交方式不对的情况下。那你就是非法用户了,因为get方式是什么?任意默认都是get,你是必须得指定的。所以它相对来说安全性要高一些,当然这个如果没听明白啊,我们到后边讲so的时候,诶会知道到底。
22:10
是怎么回事?为什么post安全性就更高了?好,这是我们的get与post。请求提交方式,这样的话,我们的这个。Web加web开发基础这个专题就说完了。
我来说两句