前端网络基础-GET和POST的区别,web前端开发教程

前端网络基础-GET和POST的区别,web前端开发教程

码农世界 2024-05-19 前端 58 次浏览 0个评论

如何携带请求数据?

携带的数据大小是否有限制,限制是多少?

请求参数是否可以被缓存?

请求参数的编码方式

请求参数的格式

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:

    其实我们很难也不需要在面试过程中去完美地阐述出整套思想,这里也只是浅尝辄止,一些个人理解而已。博主也是初级小菜鸟,停留在表面而已,只求对大家能有所帮助,轻喷🤣;

    我个人觉得: 这些编程范式之间,其实并不矛盾,各有各的 优劣势。

    理解和学习它们的理念与优势,合理地 设计融合,将优秀的软件编程思想用于提升我们应用;

    所有设计思想,最终的目标一定是使我们的应用更加 解耦颗粒化、易拓展、易测试、高复用,开发更为高效和安全;

转载请注明来自码农世界,本文标题:《前端网络基础-GET和POST的区别,web前端开发教程》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,58人围观)参与讨论

还没有评论,来说两句吧...

Top