get & post

PHP中


GET vs. POST

GET 和 POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value3, ...))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。

GET 和 POST 被视作 $_GET 和 $_POST。它们是超全局变量,这意味着对它们的访问无需考虑作用域 - 无需任何特殊代码,您能够从任何函数、类或文件访问它们。

$_GET 是通过 URL 参数传递到当前脚本的变量数组。

$_POST 是通过 HTTP POST 传递到当前脚本的变量数组。

何时使用 GET?

通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)。GET 对所发送信息的数量也有限制。限制在大于 2000 个字符。不过,由于变量显示在 URL 中,把页面添加到书签中也更为方便。

GET 可用于发送非敏感的数据。

注释:绝不能使用 GET 来发送密码或其他敏感信息!

何时使用 POST?

通过 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且对所发送信息的数量也无限制

此外 POST 支持高阶功能,比如在向服务器上传文件时进行 multi-part 二进制输入。

不过,由于变量未显示在 URL 中,也就无法将页面添加到书签。

提示:开发者偏爱 POST 来发送表单数据。

接下来让我们看看如何安全地处理 PHP 表单!



Python中

1.使用get方式时,url类似如下格式:

[html]  view plain copy
  1. index.jsp?id=100&op=bind  


GET报问头如下:

[html]  view plain copy
  1. GET /sn/index.php?sn=123&n=asa HTTP/1.1  
  2.  Accept: */*  
  3.  Accept-Language: zh-cn  
  4.  host: localhost  
  5.    
  6.   
  7.  Content-Type: application/x-www-form-urlencoded  
  8.  Content-Length: 12  
  9.  Connection:close  


 

2.使用post方式时,POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,可用来传送文件。

POST报文头如下:

[html]  view plain copy
  1. POST /sn/index.php HTTP/1.1  
  2. Accept: */*  
  3. Accept-Language: zh-cn  
  4. host: localhost  
  5.   
  6. Content-Type: application/x-www-form-urlencoded  
  7. Content-Length: 12  
  8. Connection:close  
  9. sn=123&n=asa  


在http头后边有一空行,空行后边接着发送post数据。空行通知服务器以下不再有请求头。

 

3.可以发现的一点是,无论是post还是get方式,他们所传递的数据都要进行url编码

 

4. url编码是一种浏览器用来打包表单输入的格式。

 浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器

 不管哪种情况,在服务器端的表单输入格式样子象这样:

  theName=Ichabod+Crane&gender=male&status=missing& ;headless=yes

 

5.URL编码遵循下列规则:

     1.每对name/value由&;符分开;

     2.每对来自表单的name/value由=符分开。

     3.如果用户没有输入值给这个name,那么这个name还是出现,只是无值。

     4.任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码

6.所以,当我们使用get或者post传送数据之前,我们都需要对数据进行url编码。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值