浅谈HTTP中Get与Post的区别
- 格式:docx
- 大小:21.37 KB
- 文档页数:3
浅谈HTTP中Get与Post的区别Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。
URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。
到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
浅谈HTTP中Get与Post的区别1.根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。
(1).所谓安全的意味着该操作用于获取信息而非修改信息。
换句话说,GET 请求一般不应产生副作用。
就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。
* 注意:这里安全的含义仅仅是指是非修改信息。
(2).幂等的意味着对同一URL的多个请求应该返回同样的结果。
这里我再解释一下幂等这个概念:看完上述解释后,应该可以理解GET幂等的含义了。
但在实际应用中,以上2条规定并没有这么严格。
引用别人文章的例子:比如,新闻站点的头版不断更新。
虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。
从根本上说,如果目标是当用户打开一个链接时,他可以确信从自身的角度来看没有改变资源即可。
2.根据HTTP规范,POST表示可能修改变服务器上的资源的请求。
继续引用上面的例子:还是新闻以网站为例,读者对新闻发表自己的评论应该通过POST实现,因为在评论提交后站点的资源已经不同了,或者说资源被修改了。
上面大概说了一下HTTP规范中GET和POST的一些原理性的问题。
但在实际的做的时候,很多人却没有按照HTTP 规范去做,导致这个问题的原因有很多,比如说:1.很多人贪方便,更新资源时用了GET,因为用POST必须要到FORM(表单),这样会麻烦一点。
get和post参数传递方式“GET和POST参数传递方式”是指通过HTTP协议传递参数的两种常用方式。
在网络开发中,我们经常需要将参数传递给服务器端处理,以便进行相应的操作。
本文将以GET和POST参数传递方式为主题,详细介绍这两种方法的使用场景、优缺点以及具体实现步骤等内容,希望能帮助读者更好地理解和运用这两种传参方式。
一、GET和POST参数传递方式的概念及区别GET和POST是HTTP协议中的两种常用HTTP请求方法,用于从客户端向服务器发送请求。
它们的主要区别在于参数的传递方式以及适用场景。
1. GET方式:通过URL的查询字符串传递参数,参数会附加在URL后面,形如“2. POST方式:通过请求体传递参数,参数不会出现在URL中,而是通过请求头的Content-Type字段指定参数的格式(如application/x-www-form-urlencoded或multipart/form-data)。
POST请求适合传递大量参数以及需要保密性的数据,如表单数据、文件上传等。
二、GET参数传递方式的实现步骤及示例GET参数传递方式相对简单,一般适用于只传递少量参数的场景。
其实现步骤如下:1. 构造URL:需要将参数以键值对的形式添加到URL的查询字符串中。
例如,我们要传递name和age两个参数,可以构造URL:“2. 发送请求:客户端向服务器发送GET请求,将参数附加在URL后面。
服务器端通过解析URL中的查询字符串,获取参数并进行相应的处理。
3. 接收参数:服务器端解析URL,获取参数的值。
具体的实现方式根据使用的编程语言和框架而有所不同。
下面以Python和Flask框架为例,演示GET参数传递方式的实现:pythonfrom flask import Flask, requestapp = Flask(__name__)@app.route('/page', methods=['GET'])def handle_page():name = request.args.get('name')age = request.args.get('age')# 在这里对接收到的参数进行相应的处理return f"Hello, {name}! You are {age} years old."if __name__ == '__main__':app.run()在上述示例中,我们使用Flask框架搭建了一个简单的Web应用。
HTTP请求⽅式中get和post的区别表单提交中get和post⽅式的区别有5点1.get是从服务器上获取数据,post是向服务器传送数据。
2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段⼀⼀对应,在URL中可以看到。
post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内⼀起传送到ACTION属性所指的URL地址。
⽤户看不到这个过程。
3.对于get⽅式,服务器端⽤Request.QueryString获取变量的值,对于post⽅式,服务器端⽤Request.Form获取提交的数据。
4.get传送的数据量较⼩,不能⼤于2KB。
post传送的数据量较⼤,⼀般被默认为不受限制。
但理论上,IIS4中最⼤量为80KB,IIS5中为100KB。
(这⾥有看到其他⽂章介绍get和post的传送数据⼤⼩跟各个浏览器、操作系统以及服务器的限制有关)5.get安全性⾮常低,post安全性较⾼。
表单提交中get和post⽅式的区别有5点1.get是从服务器上获取数据,post是向服务器传送数据。
2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段⼀⼀对应,在URL中可以看到。
post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内⼀起传送到ACTION属性所指的URL地址。
⽤户看不到这个过程。
3.对于get⽅式,服务器端⽤Request.QueryString获取变量的值,对于post⽅式,服务器端⽤Request.Form获取提交的数据。
4.get传送的数据量较⼩,不能⼤于2KB。
post传送的数据量较⼤,⼀般被默认为不受限制。
但理论上,IIS4中最⼤量为80KB,IIS5中为100KB。
5.get安全性⾮常低,post安全性较⾼。
HTTP请求:get与post⽅法的区别HTTP 定义了与服务器交互的不同⽅法,最基本的⽅法是 get 和 post。
Get和post的区别基本回答面试回答:GET请求在URL中传送的参数是有长度限制的,而POST没有。
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
GET参数通过URL传递,POST放在Request body中。
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
GET请求只能进行url编码,而POST支持多种编码方式。
GET请求会被浏览器主动cache,而POST不会,除非手动设置。
GET产生的URL地址可以被Bookmark,而POST不可以。
GET在浏览器回退时是无害的,而POST会再次提交请求。
详细解说:面试必备:GET和POST 的区别详细解说标准答案我们先看一下w3school标准答案长什么样子面试必备:GET和POST 的区别详细解说从标准上来看,GET 和POST 的区别如下:GET 用于获取信息,是无副作用的,是幂等的,且可缓存POST 用于修改服务器上的数据,有副作用,非幂等,不可缓存面试必备:GET和POST 的区别详细解说GET、POST 请求报文上的区别GET 和POST 只是HTTP 协议中两种请求方式(异曲同工),而HTTP 协议是基于TCP/IP 的应用层协议,无论GET 还是POST,用的都是同一个传输层协议,所以在传输上,没有区别。
报文格式上,不带参数时,最大区别就是第一行方法名不同, 仅仅是报文的几个字符不同而已POST 方法请求报文第一行是这样的POST /url HTTP/1.1 GET 方法请求报文第一行是这样的GET /url HTTP/1.1带参数时报文的区别呢?在约定中,GET 方法的参数应该放在url 中,POST 方法参数应该放在body 中举个例子,如果参数是name=Javanx, age=25。
GET 方法报文是这样的GET /updateInfo?name=Javanx&age=25 HTTP/1.1 Host: localhost (示例)下图是头条获取文章列表请求面试必备:GET和POST 的区别详细解说POST 方法报文是这样的POST /updateInfo HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded name=Javanx&age=25(示例)下图是头条回复评论请求面试必备:GET和POST 的区别详细解说现在我们知道了两种方法本质上是TCP 连接,没有区别。
Get、post的区别——给你标准答案首先,get和post都是HTTP协议的请求方法,本质上没有区别。
HTTP的底层是TCP/IP,所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接,GET和POST能做的事情是一样一样的,你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。
但为什么我们还要区分get、post呢?在我大万维网世界中,TCP就像汽车,我们用TCP来运输数据,它很可靠,从来不会发生丢件少件的现象。
但是如果路上跑的全是看起来一模一样的汽车,那这个世界看起来是一团混乱,送急件的汽车可能被前面满载货物的汽车拦堵在路上,整个交通系统一定会瘫痪。
为了避免这种情况发生,交通规则HTTP诞生了。
HTTP给汽车运输设定了好几个服务类别,有GET, POST, PUT, DELETE等等,HTTP规定,当执行GET请求的时候,要给汽车贴上GET的标签(设置method为GET),而且要求把传送的数据放在车顶上(url中)以方便记录。
如果是POST请求,就要在车上贴上POST的标签,并把货物放在车厢里。
当然,你也可以在GET 的时候往车厢内偷偷藏点货物,但是这是很不光彩;也可以在POST的时候在车顶上也放一些数据,让人觉得傻乎乎的。
HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。
但是,我们只看到HTTP对GET和POST参数的传送渠道(url还是requrest body)提出了要求。
“标准答案”里关于参数大小的限制又是从哪来的呢?在我大万维网世界中,还有另一个重要的角色:运输公司。
不同的浏览器(发起http请求)和服务器(接受http请求)就是不同的运输公司。
虽然理论上,你可以在车顶上无限的堆货物(url中无限加参数)。
但是运输公司可不傻,装货和卸货也是有很大成本的,他们会限制单次运输量来控制风险,数据量太大对浏览器和服务器都是很大负担。
Post和Get的区别(兼谈页面间传值的方式)从一个页面转向另一个页面的请求方式有两种,Post和Get.如果从原理上来探究他们的区别,涉及到Http传输协议的细节,本文不加探究,只讨论一下表象。
所有的人都知道如下区别:1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。
2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.3.Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get 之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.Post的信息作为http请求的内容,而Get是在Http头部传输的。
我们的form表单的method方法,有两个,post,get.它在页面传值的时候的区别也就是上面提到的三点.先来看一下post方法.这个方法在asp时代应该跟程序员打交道很多的,因为那时候没有现在的V iewState,每个页面要恢复原来的状态,都要将页面Post给自身,然后挨个取值,重新赋值.现在这些琐碎的事情都让ViewState代劳了.所以将页面post给自身的动作,在某种程度上已经被的程序员们忘却了,所以Post也就被大部分的忽视了,这就是技术进步的双刃剑,带来方便的同时,蒙上你的眼睛。
ViewState必须包含在<form runat="server">的窗体下,而只要包含了"runat="server""的标志,就甭想Post到其他页面中去,为什么?老盖说,我的V iewState是保存当前页面状态的,你要转到其他页面,他说,不行,**不认识的参数.如果想Post一个窗体,咋办?有四种方式可供选择.1.在页面上新建一个form,不要加上runat="server"的标志,当然在这个窗体下的控件也就不用想用Viewstate来传值了.当在其他有runat="server"的窗体的中的按钮事件中,手动调用新建form的submit() 函数.传送页面代码如下:<!--html代码--><form id="Form1" method="post" runat="server"><input id="btnTransfer" type="button" onclick="post();" runat="server"><input type="text" runat="server" id="SourceData"></form><form id="forPost" method="post"><input type="text" runat="server" id="SourceData2"></form><!--Script代码--><script language="javascript">function post(){forPost.action="DestinationPage.aspx";forPost.submit();}</script>接收页面string a=Request.Form["SourceData2"].ToString();2.通过Session取值,在一个页面中赋值,在其他页面中共享,这个方式也被广泛应用,个人不倾向于用这种方式,我怕造成Session值的混乱无序,Session用来存一些公共的东西已经累得够呛了。
getpost方法GET和POST是HTTP协议中最常见的两种请求方法。
它们都是用来向服务器传送数据。
本文将从以下一些方面阐释什么是Get/Post方法,两者有何区别。
1. Get/Post方法的含义Get和Post都是用来传递数据给服务器,以便服务器做出相应的处理。
Get是在URL中传输数据,数据可以被缓存,存入浏览器历史记录中,Post则是将数据放在HTTP请求主体中传输,数据不会被缓存,也不会存入浏览器历史记录中。
2. Get/Post方法的区别(1)长度限制:Get方法中传输的数据长度有限制,通常不超过2KB。
因此,它不适合传输大量数据。
而Post方法传输的数据没有长度限制。
(2)安全性:Get方法中传输的数据以明文方式传输,在URL中可以看到。
因此,它的安全性较低。
而Post方法中传输的数据以二进制方式传输,不以明文显示在URL中,安全性相对较高。
(3)请求方式:Get方法是一种“无副作用”请求方式,它不会改变服务器的状态,只是获取并显示数据。
Post方法则是一种“有副作用”的请求方式,它会改变服务器的状态,例如在数据库中添加数据。
(4)缓存处理:Get方法可以被缓存,因为它的请求结果是相同的。
所以,使用Get方法会使网页加载速度更快。
Post方法不会被缓存,因为它的请求结果会根据请求参数的不同而改变。
3. 使用建议当需要从服务器获取数据时,使用Get方法;当需要向服务器提交数据时,使用Post方法。
如果需要传输大量数据或保证传输的过程安全,则需要使用Post方法。
Get方法适用于页面跳转,如单纯的浏览网页;而Post方法适用于涉及数据变更、快递或登录等需要保证安全性的交互过程。
Get方法数据传输速度快,但安全性不如Post方法,所以应该避免将敏感数据传输给服务器。
4. 总结Get方法和Post方法都是HTTP协议中最常用的请求方式。
它们之间的不同主要体现在请求的方式、传输数据的大小、安全性以及缓存处理上。
两种最常用的HTTP 方法是:GET 和POST
什么是HTTP?
超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。
HTTP 的工作方式是客户机与服务器之间的请求-应答协议。
web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。
举例:客户端(浏览器)向服务器提交HTTP 请求;服务器向客户端返回响应。
响应包含关于请求的状态信息以及可能被请求的内容。
两种HTTP 请求方法:GET 和POST
在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和POST。
•GET - 从指定的资源请求数据。
•POST - 向指定的资源提交要被处理的数据
GET 方法
请注意,查询字符串(名称/值对)是在GET 请求的URL 中发送的:
有关GET 请求的其他一些注释:
•GET 请求可被缓存
•GET 请求保留在浏览器历史记录中
•GET 请求可被收藏为书签
•GET 请求不应在处理敏感数据时使用
•GET 请求有长度限制
•GET 请求只应当用于取回数据
POST 方法
请注意,查询字符串(名称/值对)是在POST 请求的HTTP 消息主体中发送的:
有关POST 请求的其他一些注释:
•POST 请求不会被缓存
•POST 请求不会保留在浏览器历史记录中
•POST 不能被收藏为书签
•POST 请求对数据长度没有要求。