当前位置:首页 >> 脚本专栏

python中get和post有什么区别

在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。

GET方式提交的数据最多只能有1024 Byte,而POST则没有此限制。

安全性问题。正如在上面中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。

表单提交中get和post方式的区别归纳如下几点:

get是从服务器上获取数据,post是向服务器传送数据。

对于表单的提交方式,在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式提交的数据只能用Request.Form来获取。

一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。但是在分页程序中,用Get方式就比用Post好。

HTTP POST和GET的区别

1、HTTP 只有POST和GET 两种命令模式;

2、 POST 是被设计用来向上放东西的,而GET是被设计用来从服务器取东西的,GET也能够向服务器传送较少的数据,而Get之所以也能传送数据,只是用来设计告诉 服务器,你到底需要什么样的数据.POST的信息作为HTTP 请求的内容,而GET是在HTTP 头部传输的;

3、POST与GET在HTTP 中传送的方式不同,GET的参数是在HTTP 的头部传送的,而Post的数据则是在HTTP 请求的内容里传送;

4、POST传输数据时,不需要在URL中显示出来,而GET方法要在URL中显示;

5、 GET方法由于受到URL长度的限制,只能传递大约1024字节;POST传输的数据量大,可以达到2M,而根据微软方面的说法,微软对用 Request.Form() 可接收的最大数据有限制,IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节;

6、SOAP是依赖于HTTP POST模式实现的。

实例补充:

单纯的post请求:

def http_post():
 url = "http://152.1.12.11:8080/web"
 postdata = dict(d=2, p=10)
 post = []
 post.append(postdata)
 req = urllib2.Request(url, json.dumps(post)) #需要是json格式的参数
 req.add_header('Content-Type', 'application/json') #要非常注意这行代码的写法
 response = urllib2.urlopen(req)
 result = json.loads(response.read())
 print result

需要token时写法如下:

def http_post():
 url = "http://152.1.12.11:8080/web"
 postdata = dict(d=2, p=10)
 post = []
 post.append(postdata)
 req = urllib2.Request(url, json.dumps(post))
 access_token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1bmlxdWVfbmFtZSI6I..........'
 req.add_header('Authorization', access_token) #header中添加token
 req.add_header('Content-Type', 'application/json') #要非常注意这行代码的写法
 response = urllib2.urlopen(req)
 result = json.loads(response.read())
 print result

get方式的写法如下:

def get_access_token():
 local_url = 'http://152.1.1.1:8080/web'
 response = urllib2.urlopen(local_url).read()
 resp = json.loads(response)
 print resp