如何携带请求数据?
携带的数据大小是否有限制,限制是多少?
请求参数是否可以被缓存?
请求参数的编码方式
请求参数的格式
GET和POST在安全性上的差异
对于服务器来说
对于浏览器来说
对于网络传输来说
GET和POST在性能上的差异
GET和POST的本质区别是它们的设计初衷
GET一般用于客户端向服务器 获取 和 检索 数据
POST 一般用于客户端向服务器 创建 或 更新 数据
GET和POST在使用上的差异
触发请求的方式
对于GET来说:
1、浏览器地址栏输入网址后回车,会触发GET请求
2、HTML文档中script标签,link标签,img标签引入外部文件时,会触发GET请求
3、通过点击a标签超链接跳转网页,会触发GET请求
4、通过form表单发起GET请求
5、通过ajax发起GET请求
对于POST来说:
1、通过form表单发起POST请求
2、通过ajax发起POST请求
如何携带请求数据?
对于GET来说:
既可以在URL携带,也可以在请求体中携带。但是,一般服务器端只会获取从URL中获取GET的请求参数。
对于POST来说:
既可以在URL携带,也可以在请求体中携带。但是,一般服务器端只会获取从请求体中获取POST的请求参数。
携带的数据大小是否有限制,限制是多少?
对于GET来说:
一般将请求参数加在URL中,而浏览器和服务器都会对URL的大小加以限制,而且不同的浏览器和服务器对于限制标准设定不同。
由于短板是IE浏览器,所以我们一般限制请求URL的大小在2048个字节以下。
对于服务器来说,目前来看都比浏览器的限制标准宽一点,所以短板还是在浏览器,而浏览器的短板在IE,IE不愧是罪恶源头
所以GET请求携带的数据量,不能超过2KB
对于POST来说:
请求参数都放在请求体中,
即浏览器只管发,所以一般不做限制,但是服务器会做限制。但是一般来说,默认的限制最多1M或2M。
请求参数是否可以被缓存?
对于GET来说
GET的请求参数一般被加在URL中,作为URL的组成部分,而URL既可以被当作浏览器书签保存,也会被缓存到浏览器历史记录中,所以GET请求参数可以被缓存
对于POST来说
POST的请求参数一般放在请求体中,而HTTP请求体一般无法被浏览器缓存,所以POST请求参数一般来说无法被缓存。
请求参数的编码方式
对于GET来说
GET请求参数一般被加在URL中,而URL只支持部分ASCII码字符,所以GET请求参数中的非ASCII码字符需要经过url encode编码。常用编码方式有GBK编码,UTF-8编码等,实际编码方式取决于浏览器,比如谷歌内核的浏览器使用的是UTF-8编码。
对于POST来说
POST请求参数一般被加在请求体。由于不是在URL中,所以没有字符必须是ASCII码的限制,可以是任意字符,即POST请求参数一般没有编码要求。除非,指定POST请求参数要被URL编码,如form表单指定enctype为application/x-www-form-urlencode,或者ajax指定content-type为application/x-www-form-urlencode。对于其他格式,如application/json、text/plain都没有编码要求。另外格式multipart/form-data,会对参数值进行多重编码。
请求参数的格式
GET请求参数只能是请求字符串格式(键值对形式)
POST请求参数可以是xml格式(text/xml),json格式(application/json),请求字符串格式(application/x-www-form-urlencode),文件的二进制数据格式(multipart/form-data)
GET和POST在安全性上的差异
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
总结:
-
函数式编程其实是一种编程思想,它追求更细的粒度,将应用拆分成一组组极小的单元函数,组合调用操作数据流;
-
它提倡着 纯函数 / 函数复合 / 数据不可变, 谨慎对待函数内的 状态共享 / 依赖外部 / 副作用;
Tips:
其实我们很难也不需要在面试过程中去完美地阐述出整套思想,这里也只是浅尝辄止,一些个人理解而已。博主也是初级小菜鸟,停留在表面而已,只求对大家能有所帮助,轻喷🤣;
我个人觉得: 这些编程范式之间,其实并不矛盾,各有各的 优劣势。
理解和学习它们的理念与优势,合理地 设计融合,将优秀的软件编程思想用于提升我们应用;
所有设计思想,最终的目标一定是使我们的应用更加 解耦颗粒化、易拓展、易测试、高复用,开发更为高效和安全;
;
Tips:
其实我们很难也不需要在面试过程中去完美地阐述出整套思想,这里也只是浅尝辄止,一些个人理解而已。博主也是初级小菜鸟,停留在表面而已,只求对大家能有所帮助,轻喷🤣;
我个人觉得: 这些编程范式之间,其实并不矛盾,各有各的 优劣势。
理解和学习它们的理念与优势,合理地 设计融合,将优秀的软件编程思想用于提升我们应用;
所有设计思想,最终的目标一定是使我们的应用更加 解耦颗粒化、易拓展、易测试、高复用,开发更为高效和安全;
还没有评论,来说两句吧...