• POST和GET详解


    GET和POST


     Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

    1.区别(表现形式角度)

    method GET POST
    后退按钮/刷新 无害(幂等) 数据会被重新提交
    书签 可收藏为书签 不可收藏为书签
    缓存 能被缓存 不能缓存
    编码类型 application/x-www-form-urlencoded application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码
    历史 参数保留在浏览器历史中 参数不会保存在浏览器历史中
    对数据长度的限制 有限制 无限制
    对数据类型的限制 只允许 ASCII 字符 没有限制。也允许二进制数据
    安全性 与 POST 相比,GET 的安全性较差,因为所发送的数据是URL的一部分。在发送密码或其他敏感信息时绝不要使用 GET POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中
    可见性 数据在 URL 中对所有人都是可见的 数据不会显示在 URL 中

    2.具体解释

    1.Get/Post后退或刷新(幂等):

    比如在请求响应前失去连接,如果方法是幂等的,就可以放心地重发一次请求。这也是浏览器在后退/刷新时遇到POST会给用户提示的原因:POST语义不是幂等的,所以在实际应用中要防止表单的重复提交。
    
    幂等:幂等的意味着对同一URL的多个请求应该返回同样的结果
    

    2.Get/Post收藏书签:

    由于Get请求的参数都附着在URL上。POST把提交的数据则放置在是HTTP包的包体中。比如一个当前打开的淘宝网址为 ( Get ) :www.taobao.com?id=456&name=123  加入书签中,下次可以照常打开这个页面。如果这是一个Post请求获得的商品页面地址如:http://www.taobao.com 加入书签后,下次打开或者发给别人看,别人只能打开只是淘宝网的首页而已。
    

    3.Get/Post缓存:

    GET时默认可以复用前面的请求数据作为缓存结果返回,此时以完整的URL作为缓存数据的KEY。如果为了请求到新数据可以在url后随意加一个参数,就会重新请去服务器请求资源。而post一般不会被这些缓存影响。
    

    4.GET和POST长度的限制:

    HTTP协议对URL长度是没有限制的。GET是通过URL提交数据,因此GET可提交的数据量就跟URL所能达到的最大长度有直接关系。
    

    5.GET和POST安全性:

    1.GET是通过URL方式请求,可以直接看到,明文传输
    2.POST是通过请求header请求,普通用户是看不到请求的参数的(可以开发者工具或者抓包可以看到)     3.比如在评论别人文章时,使用post,如果使用get地址栏显示:http://www.xxxx.com?uid=xx&content=xxxx,内容会直接显示出来,如果别人把url复制一下就可以帮你评论那不是就乱套了( 不安全)。
    

    3.总而言之

    1.Get用于从服务器端获取数据,包括静态资源、动态数据展示等等。
    2.POST用于向服务器提交数据,比如增删改数据等操作。
  • 相关阅读:
    Spring Boot 学习(一) 快速搭建SpringBoot 项目
    @RunWith和 SpringJUnit4ClassRunner ---->junit4和Spring一起使用
    Spring Boot的SpringApplication类详解
    @SpringBootApplication的使用
    使用阿里云搭建个人博客
    @Controller和@RestController的区别?
    蚂蚁金服开发文档中心
    Logger.getLogger()和LogFactory.getLog()的区别
    SimpleDateFormat使用详解
    SpringBoot整合RabbitMQ实现微服务间的异步消息沟通
  • 原文地址:https://www.cnblogs.com/omery/p/8361511.html
Copyright © 2020-2023  润新知