• HTTP中GET,POST和PUT的区别


    面试中经常考到 HTTP中GET,POST和PUT的区别,记录一下

    1、PUT和POST

    PUT和POST都有更改指定URI的语义.但PUT被定义为idempotent的方法,POST则不是.idempotent的方法:如果一个方法重复执行

    多次,产生的效果是一样的,那就是idempotent的。也就是说:

    PUT请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉。(所以PUT用来改资源)

    POST请求:后一个请求不会把第一个请求覆盖掉。(所以Post用来增资源)

    举个例子,注册时用的是POST,修改个人信息的时候使用PUT

    2、GET和POST

    1、GET参数通过URL传递,POST放在Request body中。

    2、GET请求会被浏览器主动cache,而POST不会,除非手动设置。

    3、GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

    4、Get 请求中有非 ASCII 字符,会在请求之前进行转码,POST不用,因为POST在Request body中,通过 MIME,也就可以传输非 ASCII 字符。

    5、 一般我们在浏览器输入一个网址访问网站都是GET请求

    6、HTTP的底层是TCP/IP。HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。但是请求的数据量太大对浏览器和服务器都是很大负担。所以业界有了不成文规定,(大多数)浏览器通常都会限制url长度在2K个字节,而(大多数)服务器最多处理64K大小的url。

    7、GET产生一个TCP数据包;POST产生两个TCP数据包。对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

    8、在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。但并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

    3、总结

    简单来说,在工作中,获取数据使用GET,提交数据使用PUST,修改数据使用PUT,删除数据使用DELETE
     

    参考链接:https://www.jianshu.com/p/c1737c09f9e5
  • 相关阅读:
    文件数据源设置
    维护0material主数据,提示Settings for material number conversion not found
    7.5版本COPA数据源创建转换提示“不允许对象名称为空”
    COPA指标自动创建
    IDEA操作数据库
    Docker(快速实战流程)
    Docker(理论部分小结)
    Docker数据卷挂载相关
    解决pycharm启动updating Python interpreter长时间更新
    IDEA完美配置(shell)linux的命令行工具
  • 原文地址:https://www.cnblogs.com/xwxz/p/13362251.html
Copyright © 2020-2023  润新知