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

到此这篇关于python中get和post有什么区别的文章就介绍到这了,更多相关python中get和post区别内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python爬虫中get和post方法介绍以及cookie作用

    首先确定你要爬取的目标网站的表单提交方式,可以通过开发者工具看到.这里推荐使用chrome. 这里我用163邮箱为例 打开工具后再Network中,在Name选中想要了解的网站,右侧headers里的request method就是提交方式.status如果是200表示成功访问下面的有头信息,cookie是你登录之后产生的存储会话(session)信息的.第一次访问该网页需要提供用户名和密码,之后只需要在headers里提供cookie就可以登陆进去. 引入requests库,会提供get和po

  • Python3.6通过自带的urllib通过get或post方法请求url的实例

    废话不多说,直接上代码: # coding:utf-8 from urllib import request from urllib import parse url = "http://10.1.2.151/ctower-mall-c/sys/login/login.do" data = {"id":"wdb","pwd":"wdb"} params="?" for key in da

  • Python大数据之网络爬虫的post请求、get请求区别实例分析

    本文实例讲述了Python大数据之网络爬虫的post请求.get请求区别.分享给大家供大家参考,具体如下: 在JetBrains PyCharm 2016.3软件中编写代码前,需要指定python和编码方式: #!user/bin/python 编码方式 :#coding=utf-8 或者 #-*-coding:utf-8-*- post请求: #导入工具,内置的库 import urllib import urllib2 #加一个\可以换行 #response = \ #urllib2.url

  • Python中用post、get方式提交数据的方法示例

    前言 最近在使用Python的过程中,发现网上很少提到在使用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(

  • python2与python3爬虫中get与post对比解析

    python2中的urllib2改为python3中的urllib.request 四种方式对比: python2的get # coding=utf-8 import urllib import urllib2 word = urllib.urlencode({"wd":"百度"}) url = 'http://www.baidu.com/s' + '?' + word request = urllib2.Request(url) print urllib2.url

  • python利用urllib和urllib2访问http的GET/POST详解

    前言 本文主要给大家介绍了关于python如何访问http的GET/POST的相关内容,使用urllib和urllib2,可以轻松实现对http的访问,下面话不多说了,来一起看看详细的介绍吧. 示例详解 以下给个例子,实现对http://127.0.0.1/cgi/test的GET与POST 使用的是平常意义上的query string POST接受json 其中, urllib2的Request方法如果只带一个参数是GET方法,但如果带两个参数,则为http的POST方法,第二个参数为POST

  • Python中set与frozenset方法和区别详解

    set(可变集合)与frozenset(不可变集合)的区别: set无序排序且不重复,是可变的,有add(),remove()等方法.既然是可变的,所以它不存在哈希值.基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交集), difference(差集)和sysmmetric difference(对称差集)等数学运算. sets 支持 x in set, len(set),和 for x in set.作为一个无序的集合,sets不记录元素位

  • 对python 中re.sub,replace(),strip()的区别详解

    1.strip(): str.strip([chars]);去除字符串前面和后面的所有设置的字符串,默认为空格 chars -- 移除字符串头尾指定的字符序列. st = " hello " st = st.strip() print(st+"end") 输出: 如果设置了字符序列的话,那么它会删除,字符串前后出现的所有序列中有的字符.但不会清除空格. st = "hello" st = st.strip('h,o,e') print(st) 因

  • 对python中数组的del,remove,pop区别详解

    以a=[1,2,3] 为例,似乎使用del, remove, pop一个元素2 之后 a都是为 [1,3], 如下: >>> a=[1,2,3] >>> a.remove(2) >>> a [1, 3] >>> a=[1,2,3] >>> del a[1] >>> a [1, 3] >>> a= [1,2,3] >>> a.pop(1) 2 >>>

  • 深入理解Python中的 __new__ 和 __init__及区别介绍

    本文的目的是讨论Python中 __new__ 和 __ini___ 的用法. __new__ 和 __init__ 的区别主要表现在:1. 它自身的区别:2. 及在Python中新式类和老式类的定义. 理解 __new__ 和 __init__ 的区别 这两个方法的主要区别在于:__new__ 负责对象的创建而 __init__ 负责对象的初始化.在对象的实例化过程中,这两个方法会有些细微的差别,表现于:如何工作,何时定义. Python中两种类的定义方式 Python 2.x 中类的定义分为

  • 浅谈python 中的 type(), dtype(), astype()的区别

    如下所示: 函数 说明 type() 返回数据结构类型(list.dict.numpy.ndarray 等) dtype() 返回数据元素的数据类型(int.float等) 备注:1)由于 list.dict 等可以包含不同的数据类型,因此不可调用dtype()函数 2)np.array 中要求所有元素属于同一数据类型,因此可调用dtype()函数 astype() 改变np.array中所有数据元素的数据类型. 备注:能用dtype() 才能用 astype() 测试代码: import nu

  • python中get和post有什么区别

    在客户端,Get方式在通过URL提交数据,数据在URL中可以看到:POST方式,数据放置在HTML HEADER内提交. GET方式提交的数据最多只能有1024 Byte,而POST则没有此限制. 安全性问题.正如在上面中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会.所以,如果这些数据是中文数据而且是非敏感数据,那么使用get:如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好. 表单提交中get和post方式的区别归纳如下几点: get是从服务器

  • 深入浅析python 中的self和cls的区别

    python 中的self和cls 一句话描述:self是类(Class)实例化对象,cls就是类(或子类)本身,取决于调用的是那个类. @staticmethod 属于静态方法装饰器,@classmethod属于类方法装饰器.我们需要从声明和使用两个方面来理解. 详细介绍 一般来说,要使用某个类的方法,需要先⚠️实例化一个对象再调用方法.而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用.这有利于组织代码,把某些应该属于某个类的函数给放到

  • python中 _、__、__xx__()区别及使用场景

    理论 Python中不存在真正的私有方法.为了实现类似于c++中私有方法,可以在类的方法或属性前加一个"_"单下划线,意味着该方法或属性不应该去调用,它并不属于API.但是,这只是一个形式上的约定,python并不阻止调用. __双下划线的作用是避免覆盖其内容,实现的机制是在带有双下划线的方法或属性前加上_类名的标识.由于,python自动对方法和属性进行了改写,所以直接调用带有双下划线的方法是调用不到的. "xx"经常是操作符或本地函数调用的magic metho

  • Python中read,readline和readlines的区别案例详解

    python中有神奇的三种读操作:read.readline和readlines read()  : 一次性读取整个文件内容.推荐使用read(size)方法,size越大运行时间越长 readline()  :每次读取一行内容.内存不够时使用,一般不太用 readlines()   :一次性读取整个文件内容,并按行返回到list,方便我们遍历 一般小文件我们都采用read(),不确定大小你就定个size,大文件就用readlines() 1)我们先用read来完整读取一个小文件,代码如下: f

  • python中start和run方法的区别

    结论:启动线程,如果对target进行赋值,并且没有重写run方法,则线程start的时候会直接调用target中对应的方法 具体代码如下:1.初始化一个线程 threading.Thread.__init__(self,target=thread_run()) def __init__(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None): assert group is None, "g

随机推荐