首页  >  问答  >  正文

php - POST和GET的根本区别是什么?

  1. POST和GET的根本区别是什么?(请不要回答POST安全或POST传递的信息容量大)
  2. 请从数据包报文的角度分析POST和GET的区别

谢谢

PHP中文网PHP中文网2750 天前1023

全部回复(15)我来回复

  • PHP中文网

    PHP中文网2017-04-10 15:36:46

    我的理解:
    POST提交是隐式。(提交的参数对流量者是隐藏的)
    GET提交是显式。(提交的参数包含在URL中,是可见的)

    回复
    0
  • 怪我咯

    怪我咯2017-04-10 15:36:46

    如果非得说不同的话,那就是浏览器处理这两种协议的方式不同,GET想刷新几次刷新几次,POST刷新就会提示“重复提交表单”,非要给这两个扣个帽子,那就应该是根据流传下来的习惯,这两个东西的“幂等性”不同。

    至于后台处理POST和GET有没有不同,那就不好说了。
    以前貌似试过,jsp的servlet.getParameter取不到POST放在URL的参数。我不确定。

    回复
    0
  • 迷茫

    迷茫2017-04-10 15:36:46

    1. 有没有BODY部分,也就是说除了URL和头部,有没有信息体是根本区别。所以GET不能用来从客户端传送大量数据到服务器端。因为GET所有的参数都在URL(浏览器地址栏)里。
    2. HTTP是应用层协议,一般基于TCP协议的可靠数据流。所以分析HTTP不必分析报文和数据包。

    举例:
    GET方法:
    GET /index.html?name=leo HTTP/1.1
    Accept: / <这是头部>
    <空行>
    结束

    POST方法:
    POST /index.html HTTP/1.1
    Acept: /
    Content-Length: 10
    <空行>
    1234567890
    <空行>
    结束

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-10 15:36:46

    抓包的时候可以发现:
    get一般就1到2个tcp包(信息头和数据都在一起,如果信息头内容很多就会产生2个或者多个包),而post至少2个包(第一个包是信息头,第二个才是数据)。

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-10 15:36:46

    哎,你真是天天没事干,这种问题搞清楚了对开发来说又有什么帮助啊?程序是用来解决问题的,你是纯搞理论研究的,反正我是无知者无畏,it知识是学不完的,能会用一些都不错了,死抠这个你可以抠十年,最后抠出来了还没有什么应用场景骚年

    回复
    0
  • 取消回复