• post和get


    post和get


    相同点:请求底层都是基于 TCP/IP 协议实现的


    不同点:

    1.在规范中,定义 GET 请求是用来获取资源的,也就是进行查询操作的,而 POST 请求是用来传输实体对象的,因此会使用 POST 来进行添加、修改和删除等操作。

    2.GET 和 POST 的参数传递也是不同的,GET 请求是将参数拼加到 URL 上进行参数传递的,而 POST 是将请参数写入到请求正文中传递的

    3.GET 请求一般会被缓存,比如常见的 CSS、JS、HTML 请求等都会被缓存;而 POST 请求默认是不进行缓存的。

    这里是数据会被前端缓存,当浏览器发了一条请求,会返回数据,浏览器会把返回的数据记录下来 当你再次发送该请求的时候,浏览器并不真的再发送这条请求,而是从历史记录里把这个数据读取取出来,这叫做缓存。这是浏览器自己的决策,后端并不知道也没有收到任何请求。 防止浏览器缓存的方法是添加http头,告诉浏览器不要缓存数据,或是给一个校验。。。。等等 但是更靠谱的方法是每次都让get的数据不一样:

    GET http://localhost/api?_t=时间戳
    
    • 1

    添加一个后端直接忽略的参数,然后每次都不一样,这样浏览器就认为每次都是不同的请求,就不会从历史记录里读取数据了。


    在这里插入图片描述

    图片来自:https://segmentfault.com/q/1010000021784624/a-1020000021785282


    4.GET 请求的参数是通过 URL 传递的,而 URL 的长度是有限制的,通常为 2k,当然浏览器厂商不同、版本不同这个限制的大小值可能也不同,但相同的是它们都会对 URL 的大小进行限制;而 POST 请求参数是存放在请求正文(request body)中的,所以没有大小限制。(原因是不同的浏览器,而不是一个在请求头一个在请求体中,http没有对他们进行限制)

    5.GET 请求可以直接进行回退和刷新,不会对用户和程序产生任何影响;而 POST 请求如果直接回滚和刷新将会把数据再次提交

    6.GET 请求的参数会保存在历史记录中,而 POST 请求的参数不会保留到历史记录中。

    7.GET 请求的地址可被收藏为书签,而 POST 请求的地址不能被收藏为书签。


    修改自:https://www.cnblogs.com/vipstone/p/16545771.html

  • 相关阅读:
    【线性代数基础进阶】特征值和特征向量-补充+练习
    mmdet全教程
    什么是深度学习以及它是如何工作的?
    合并区间问题
    解决eclipse中的Java文件,使用idea打开的乱码问题
    2023-10 字节跳动面试整个过程 golang营销服务开发岗位
    不就是Java吗之数组的定义和使用
    基于C语言实现进度条 | 附源码
    USB xHCI控制器使用总结
    【零基础入门MyBatis系列】第十二篇——高级映射、延迟加载
  • 原文地址:https://blog.csdn.net/weixin_50736511/article/details/127768557