GET和POST的区别

网上看到好多关于get和post的区别,但经过自己的验证,给大家分享一下自己的总结

引入话题:

对于表单中提交数据,浏览器使用 method 属性设置的方法将表单中的数据传送给服务器进行处理

共有两种方法:POST 方法和GET方法。

(1)如果采用 POST 方法,浏览器将会按照下面两步来发送数据。

     首先,浏览器将与 action 属性中指定的表单处理服务器建立联系,一旦建立连接之后,

     浏览器就会按分段传输的方法将数据发送给服务器。在服务器端,一旦 POST 样式的应用程序开始执行时,

     就应该从一个标志位置读取参数,而一旦读到参数,在应用程序能够使用这些表单值以前,

     必须对这些参数进行解码。用户特定的服务器会明确指定应用程序应该如何接受这些参数。


(2)另一种情况是采用GET方法,这时浏览器会与表单处理服务器建立连接,

     然后直接在一个传输步骤中发送所有的表单数据:浏览器会将数据直接附在表单的 action URL 之后

     这两者之间用问号进行分隔。


区别:

1、(1)浏览器以get方式向服务器请求时,会将参数等数据放在URL中提交给服务器,

        然后服务器处理完成后,将对浏览器做出响应并返回信息。

   (2)浏览器以post方式向服务器请求时,会将参数等数据放在http信息的body中提交给服务器,

        然后服务器处理完成后,将对浏览器做出响应并返回信息。

2. (1)get是把参数数据队列加到提交表单的ACTION属性所指的URL中,

        值和表单内各个字段一一对应,在URL中可以看到。

   (2)post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到

       ACTION属性所指的URL地址,用户是看不到 这个过程的。
3. (1)对于GET方式提交表单数据,服务器端用$_GET['name']获取变量的值,

   (2)对于POST方式提交表单数据,服务器端用$_POST['name']获取提交的数据,

        当然,两者都可以通过$_REQUEST[‘name’]获得表单数据。

        对于REQUEST方式提交表单数据,服务器端用$_REQUEST['name']获取变量的值,但这种方式很少用。

4. (1)get表单值可以通过_GET获取;但通过action的url设置的参数总是获取不到的,

          <form method="get" action="a.asp?b=b">跟<form   method="get"action="a.asp">是一样的,

          也就是说,在这种情况下,get方式会忽略action页面后边带的参数列表。

   (2)post表单值可以通过_POST获取;但通过action的url参数设置的参数也不可以通过_POST获取到。

          action=test.php?id=1这种就是get方式传值,可以用$_REQUEST和$_GET接受传值,

          但不能用POST方式获取到值,即使表单是POST方式提交。

     所以,在提交表单时,如果action中同时有参数,最好只能通过post表单方式,对于表单内数据,

     直接通过post获取,对于action中参数,通过get获取。

5.   get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。

     但理论上,IIS4中最大量为80KB,IIS5中为100KB。
6.   get安全性非常低,post安全性较高。但是执行效率却比post方法好。

建议:
1、get方式的安全性较post方式要差些,包含机密信息的话,使用post数据提交方式;
2、在做数据查询、删除时,建议用get方式;而在做数据添加、修改时,使用post方式;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值