作为一枚正在学习前端的 小萌新,如果下面哪里有写的不对的话,可以帮我指出来吗,谢谢

  1.是基于什么前提的?如果什么前提都没有,不使用任何规范,只考虑语法和理论上的HTTP协议

    那么GET和POST几乎没有什么区别,只有名字不一样而已。

  2.如果是基于RFC规范的。

    (1) 理论上的:GET和POST具有相同语法的,但是有不同的语义。 GET是用来获取数据的,POST是用来发送数据的,其他方面没有什么区别。

    (2) 实现上的:各种浏览器呢,就是实现RFC规范的实现者。

      2.1. GET的数据在URL是可见的。POST请求不显示在URL中。

      2.2. GET传输的数据,理论上是没有限制的,但是真正起到限制的浏览器对URL的长度进行的限制,

        IE:2083个字符  Firefox:65,536个字符  Safari:80,000个字符  Opera:190,000个字符  Google Chrome:8182个字符      

        对于 POST,由于不是 URL 传值,理论上是不会受限制的,但是实际上各个服务器会规定对 POST提交数据大小进行限制,Apache、IIS 都有各自的配置。

      2.3. GET请求的数据可以收藏为书签,POST请求到的数据不可以收藏为书签

      2.4. GET请求后,按后退按钮,刷新页面 无影响,但是POST数据会被重新提交。

      2.5. GET编码类型:application/x-www-form-url,  POST的编码类型:有很多种,例如有:

         1.application/x-www-form-urlencoded

        2.multipart/form-data

        3.application/json

        4.text/xml

      2.6. GET历史参数会被保留在浏览器里,POST不会保持在浏览器中

      2.7. GET只允许ASCII编码,POST没有编码限制

      2.8. GET比POST相对安全,对于小白来说,确实如此,毕竟GET 发生的数据都放在URL里面了。POST是放在数据体(Request)里面, 如果使用的是HTTP协议传输的话,其实他俩都是一样的,因为HTTP协议,传输的数据 都是明文的,所以,去网页输入账号密码的时候,记得看是HTTP,还是HTTPS的。s的比较安全。

  那,上面的呢,就是标准答案了。相信百度上,大多数都是跟这个类似的答案了。

在上面说到,在没有规范的前提下,他俩完全是没有区别的。都是基于HTTP协议,HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,所以他们的底层一样,那么要怎么传数据,当然也可以设置成一样。技术上,是完全ojbk的。

GET和POST还有一个重大区别,简单的说:

GET只会产生一个TCP数据包;POST会产生两个TCP数据包。

通俗来说的话:

  GET请求,浏览器会把 请求头和 数据一起发送过去,服务器收到了,就返回数据。

  POST呢,他是先发送请求头,服务器返回状态码100,然后浏览器再发送数据过去,服务器收到了再返回数据和状态码200。

所以看到这里,有人可能会说,既然 POST发送两次包, GET只发送一次包,理论上是不是GET比较快? 那么我们是不是可以使用GET来代替POST请求?

  不行滴,因为GET 和 POST本来自身就有自己的用处,不能随便混用的。而且,在网络较好的环境下,其实他俩发送一次和两次包的时间,几乎是差不多的。而且对于5G时代来说,更是如此。最后,对

于包的完整,是不是使用POST更能保证他的完整性?

最新文章

  1. 47个过程(PMBOK2008)
  2. Scalaz(12)- Monad:再述述flatMap,顺便了解MonadPlus
  3. Hong Kong Regional Online Preliminary 2016 C. Classrooms
  4. 解决oracle11g 空表不能exp导出的问题
  5. IDictionary<TKey, TValue> vs. IDictionary
  6. Nginx 下配置SSL证书的方法
  7. Web服务器禁止range请求
  8. MyBatis知多少(19)MyBatis操作
  9. 基于PXC的MySQL高可用环境简单部署
  10. 图片百分百问题 z-index问题
  11. effective c++:dynamic_cast,避免返回handles指向对象内部
  12. 第三百二十三天 how can I 坚持
  13. CABasicAnimation
  14. 缓动动画(json)
  15. HTML5离线存储的工作原理和使用
  16. nginx 支持ipv6设置
  17. Unity时钟定时器插件——Vision Timer源码分析之一
  18. eclipse java web项目经常自动调试进入debug模式
  19. tomcat的添加及jar包和jQuery的加载
  20. [转] .net软件反编译笔记

热门文章

  1. CountDownLatch(减少计数)
  2. 今日sb题之 sdnuoj 1064
  3. B站:我是程序汪:电话面试(待更新)
  4. 【5】TensorFlow光速入门-图片分类完整代码
  5. 合适的LoRa网关应该怎么选择
  6. Java学习的第四十六天
  7. 关于windows下redis的安装
  8. CopyOnWriteArrayList线程安全分析
  9. C语言经典100例-ex001
  10. Dapr Golang HTTP 调用