`

post和get方法的区别总结

阅读更多

post和get方法的区别总结

 

简而言之,post就是提交,get方法就是获取。
早期的网页技术并没有区分,两者都是会把数据提交到服务器,但是提交的方式不同。
在IE的地址栏中,我们可以看到这样的
URL:
(1)http://blog.csdn.net/spring21st/archive/2007/10/09/1816488.aspx
(2)http://www.baidu.com/s?wd=ASP.NET+Unleashed&cl=3

首先,我们要明白对于IE的URL是有长度限制的,IE的最大URL长度限制是2083字节,而实际可以使用的最大长度为2048字节。(2)中就采用的是get方式进行提交,这种采用字符串连接的方式就存在长度大于IE的URL长度限制。
这时采用(1)post方法就不会出现这种情况。

1、Get 方法通过 URL 请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于 action 属性所指程序的 url 后,如[url]http://www.mdm.com/test.asp?name=asd&password=sad[/url],数据都会 直接显示在 url 上,就像用户点击一个链接一样;Post 方法通过 HTTP post 机制,将表单内各字段名称与其内容放置在 HTML 表头(header)内一起传送给服务器端交由 action 属性能所指的程序处理,该程序会通过标准输入(stdin)方式,将表单的数据读出并加以处理


2、Get 方式需要使用 Request.QueryString 来取得变量的值;而 Post 方式通过 Request.Form 来访问提交的内容


3、Get 方式传输的数据量非常小,一般限制在 2 KB 左右,但是执行效率却比 Post 方法好;而 Post 方式传递的数据量相对较大,它是等待服务器来读取数据,不过也有字节限制,这是为了避免对服务器用大量数据进行恶意攻击,根据微软方面的说法,微软对用 Request.Form() 可接收的最大数据有限制,IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节

建议:除非你肯定你提交的数据可以一次性提交,否则请尽量用 Post 方法


4、Get 方式提交数据,会带来安全问题,比如一个登陆页面,通过 Get 方式提交数据时,用户名和密码将出现在 URL 上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用 Post 方法;Post 方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框

建议:出于安全性考虑,建议最好使用 Post 提交数据

在Form里面,可以使用post也可以使用get。它们都是method的合法取值。但是,post和get方法在使用上至少有两点不同:
1、Get方法通过URL请求来传递用户的输入。Post方法通过另外的形式。
2、Get方式的提交你需要用Request.QueryString来取得变量的值,而Post方式提交时,你必须通过Request.Form来访问提交的内容。

仔细研究下面的代码。你可以运行之来感受一下:

代码
<!--两个Form只有Method属性不同-->
<FORM ACTION=“getpost.asp” METHOD=“get”>
<INPUT TYPE=“text” NAME=“Text” VALUE=“Hello World”></INPUT>
<INPUT TYPE=“submit” VALUE=“Method=Get”></INPUT>
</FORM>
<BR>
<FORM ACTION=“getpost.asp” METHOD=“post”>
<INPUT TYPE=“text” NAME=“Text” VALUE=“Hello World”></INPUT>
<INPUT TYPE=“submit” VALUE=“Method=Post”></INPUT>
</FORM>

<BR>
<BR>

<% If Request.QueryString(“Text”) <> ““ Then %>
通过get方法传递来的字符串是: “<B><%= Request.QueryString(“Text”) %></B>“<BR>
<% End If %>

<% If Request.Form(“Text”) <> ““ Then %>
通过Post方法传递来的字符串是: “<B><%= Request.Form(“Text”) %></B>“<BR>
<% End If %>

说明
把上面的代码保存为getpost.asp,然后运行,首先测试post方法,这时候,浏览器的url并没有什么变化,返回的结果是:
通过Post方法传递来的字符串是: "Hello World"
然后测试用get方法提交,请注意,浏览器的url变成了:
http://localhost/general/form/getpost.asp?Text=Hello+World
而返回的结果是:
通过get方法传递来的字符串是: "Hello World"
最后再通过post方法提交,浏览器的url还是:
http://localhost/general/form/getpost.asp?Text=Hello+World
而返回的结果变成:
通过get方法传递来的字符串是: "Hello World"
通过Post方法传递来的字符串是: "Hello World"

提示
通过get方法提交数据,可能会带来安全性的问题。比如一个登陆页面。当通过get方法提交数据时,用户名和密码将出现在URL上。如果:
1、登陆页面可以被浏览器缓存;
2、其他人可以访问客户的这台机器。
那么,别人即可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,get方法会带来严重的安全性问题。
建议
在Form中,建议使用post方法。

推荐讲解更详细的网站:

http://blog.csdn.net/yaojianyou/archive/2007/08/01/1720913.aspx

分享到:
评论

相关推荐

    Http协议中POST和GET方法的本质区别

    总结来说,GET和POST的主要区别在于其目的和行为:GET用于获取资源,是安全和幂等的,数据在URL中;POST用于创建或修改资源,可能改变服务器状态,数据在请求体中。在实际开发中,理解并遵循这些原则可以提高系统的...

    深入理解get与post方法的差别

    与GET方法相比,POST方法在数据传输和处理上提供了更多的灵活性和安全性: 1. **数据传输方式**:POST方法将数据放在HTTP请求的实体主体中,而不是URL中,这意味着数据不会暴露在URL中,增加了数据的安全性。 2. *...

    post和get方法比较

    总结起来,GET和POST方法在HTTP中各有其应用场景和优缺点。GET方法简单、快速,但受限于数据量且不安全;POST方法则提供了更大的数据承载能力,适合处理敏感信息,但执行效率相对较低。在设计Web应用时,应根据需求...

    get、post区别

    GET和POST方法的选择应基于数据的类型、大小以及安全性需求。GET适用于简单的数据查询和获取,而POST适用于复杂的数据交互和修改。在处理非ASCII字符时,需要注意编码格式的设置,避免出现乱码或数据丢失的情况。...

    http 测试程序,post 和get方法测试

    HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。...对于任何涉及到网络通信的项目,理解并掌握GET和POST方法都是至关重要的。

    get post方法的区别

    ### GET与POST方法的区别 #### 一、基本概念 在Web开发中,GET与POST是两种最常用的HTTP请求方法,用于客户端(如浏览器)向服务器发送请求。它们各自有着不同的特性和应用场景,理解它们之间的差异对于正确使用...

    Ajax中POST和GET的区别

    ### Ajax中POST和GET的区别详解 #### 一、概述 在Web开发中,尤其是在使用Ajax进行前后端交互的过程中,GET和POST是最常见的两种HTTP请求方式。这两种方式虽然都是用来发送请求给服务器,但在具体实现机制、适用...

    MFC的HttpClient的Get和Post方法

    总结来说,MFC的HttpClient使得开发者能够方便地与HTTP服务器交互,执行GET和POST请求。通过理解HTTP协议的基本原理,结合MFC的WinInet库,你可以构建自己的HTTP客户端功能,实现各种网络通信需求。在实际编程时,...

    http协议get与post的区别

    在深入探讨HTTP协议中GET与POST请求方法的区别之前,我们首先需要理解HTTP(HyperText Transfer Protocol)的基础概念。HTTP是一种应用层协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。它允许数据在...

    C#实现HTTP GET和POST 样例代码

    总结来说,理解并能够熟练使用C#实现HTTP GET和POST请求是每个.NET开发者必备的技能。通过`HttpClient`类,你可以轻松地与各种Web服务进行交互,无论是获取数据还是提交信息。实践这些示例代码,结合`HTTP_Demo`中的...

    get 和post 实例

    总结来说,GET和POST是HTTP协议中的两种基本请求方法,各有其适用场景。在Android中,我们可以通过HttpClient或其他库实现这些请求。同时,JSON作为一种广泛使用的数据交换格式,也需要我们掌握其解析和生成的方法。...

    GET与POST用法

    ### GET与POST用法 #### 一、GET方法详解 GET方法是一种常用的数据获取...GET方法适用于获取数据,而POST方法则更多用于发送数据,两者各有特点和适用场景。开发者需要根据实际需求选择合适的方法来完成特定的任务。

    C# 后台请求接口的方法(GET,POST)

    根据给定的文件信息,我们可以总结出以下关于C#后台请求接口的方法(GET, POST)的知识点: ...以上就是关于C#后台请求接口的方法(GET, POST)的知识点总结,希望能对理解和使用这两种请求方式有所帮助。

    get与post实例

    总结,GET和POST是HTTP请求的重要部分,理解它们的工作原理和使用方法对于Web开发至关重要。在VB中,我们可以使用XMLHttpRequest对象轻松实现GET和POST请求,从而与服务器进行数据交互。遇到DLL丢失问题时,应及时...

    jquery-get-post-load 方法

    本文将详细介绍 jQuery 中 GET、POST 和 LOAD 方法的使用方法及其应用场景。 #### 二、GET方法 GET 方法通常用于从服务器请求数据,而不会更改服务器上的数据。它是一种安全的方法,因为数据是通过 URL 传递的,...

    winform GET请求和POST请求

    在Windows Forms(Winform)应用开发中,GET和POST是两种常见的HTTP请求方法,用于从服务器获取或向服务器发送数据。这两个概念对于任何与Web交互的客户端程序设计都是至关重要的,尤其是在使用C#进行Winform编程时...

    C# 使用Get和Post请求获取数据

    总结来说,C#中的GET和POST请求是与服务器交互的基础,它们分别适用于不同的数据传输场景。GET请求用于获取信息,数据通过URL传递;而POST请求用于提交数据,数据包含在请求体中,适合传递大量或敏感信息。在C#的Web...

    post and get

    ### POST与GET方法详解 在Web开发中,`POST`与`GET`是两种非常重要的请求方式,它们分别用于向服务器发送数据。虽然这两种方法在功能上有些相似,但其工作原理、应用场景以及安全性等方面存在显著差异。接下来,...

Global site tag (gtag.js) - Google Analytics