`

【转】全面比较HTTP GET与POST方法

 
阅读更多

本文转自:http://blog.csdn.net/jia20003/article/details/8497108

基本信息比较

属性

GET 方法

POST 方法

历史:

通常使用GET方法发送的数据作为URL的一部分将会被浏览器保存起来

使用POST方法提交的数据则不会作为URL的一部分,当然不会浏览器保存。

书签:

GET方法可能被浏览器当作书签(bookmark)保存

POST方法则不会

回退与重新提交:

使用GET方法的页面可以被回退并重新执行而不通知用户

POST方法会通知用户再次提交

Form编码类型:

GET提交数据只支持

application/x-www-form-urlencoded

POST支持application/x-www-form-urlencoded与multipart/form-data

参数:

由于GET的参数一般都跟在URL后面,支持的数据大小一般在2K,有些服务器可以支持到64K。这个就是很多网页超过64K就挂掉的真实原因。因为服务器限制了。

发送参数,还可以是文件,大小在理论上没有限制。

被攻击:

GET方法提交数据很容易被黑客攻击,实施脚本绑架。

POST方法相对GET方法不是那么容易被黑客攻击

数据类型限制:

GET方法提交数据只能是文本数据

POST方法则不受限制,二进制文件也可以。

安全性:

GET方法的安全性比POST方法要低一些,原因是数据做为URL的一部分是可见的。而且被浏览器存在历史访问记录中。

POST方法的安全性相对GET要高一些。因为参数数据不能被浏览器作为URL的一部分而存入历史访问记录中。

表单数据长度:

由于表单数据做为URL的一部分而URL长度通常是有限制的。

POST方法没有限制。

可用性:

GET方法通常不被用来发送密码与敏感信息。但是我发现还是有不少网站用GET来实现login。比如XXXX社区,它把login方法放在一个jquery完成JavaScript脚本中,用GET请求完成。

POST方法可以用来发送密码与其他敏感信息。

可见性:

GET方法对所有人可见

POST方法的变量是不可见的在URL中

缓存:

GET方法默认被缓存,这个就是很多时候用GET方法获取数据后面要跟个时间戳的原因

POST方法默认不被缓存。

除非Response头设置了Cache-Control或者Expires属性值。

最大的变量值:

GET支持最大为7607个字符

POST方法支持最大值为8MB

应用场合:

GET最常用的场合是获取数据,浏览器获取网页时候绝大多数通过GET方法实现,大多数浏览器下载也是使用GET方法获取文件

POST主要用来向服务器提交数据。

分享到:
评论

相关推荐

    httppost和httpget需要的jar包

    在Java编程中,HTTP POST和GET是两种基本的HTTP请求方法,用于客户端向服务器发送数据。为了在Java中实现这些功能,我们需要引入特定的库,这些库通常被打包成JAR(Java Archive)文件。本篇文章将详细讲解HTTP POST...

    HttpClient发送http请求(post和get)需要的jar包+内符java代码案例+注解详解

    下面将详细介绍HttpClient库,HTTP请求的基本概念,以及GET和POST方法的差异。 HttpClient是Apache基金会开发的一个开源库,它提供了全面、强大的功能来处理HTTP协议。通过HttpClient,开发者可以方便地创建HTTP...

    IE插件直接观察http协议执行细节捕获POST和GET方法.rar

    HTTP协议主要包含两种请求方法:GET和POST,它们在Web开发中扮演着至关重要的角色。 GET方法是HTTP协议中最常见的请求方法,主要用于获取资源。当你在浏览器中输入URL并点击“回车”时,浏览器就向服务器发送了一个...

    httppost和httpget需要的jar包-版本4.3.2

    在Java编程中,HTTP POST和GET方法是网络通信的基础,常用于向服务器发送数据或获取资源。Apache HttpClient库是一个强大的工具,它简化了这些HTTP操作。在这个“httppost和httpget需要的jar包-版本4.3.2”中,包含...

    httppost httpget 需要的jar包

    1. **Apache HttpClient**:这是最常用的HTTP客户端库,提供了对HTTP协议的全面支持,包括POST和GET方法。Apache HttpClient库主要由以下几个核心jar包组成: - `httpclient.jar`:包含了HTTP客户端的核心功能,如...

    jQuery中的get()/post()方法

    本篇文章将深入探讨jQuery中的两个核心Ajax方法——`get()`和`post()`,它们用于与服务器进行异步数据交换,是Web开发中不可或缺的部分。 `get()`和`post()`方法是jQuery提供的一对轻量级的Ajax接口,用于实现HTTP ...

    包含post、delete、put、get方法四个restful支持的服务

    综上所述,这个服务提供了对“book”资源的全面操作,通过RESTful设计,利用HTTP的POST、DELETE、PUT和GET方法实现了创建、删除、更新和查询的功能,使得客户端能够以标准化的方式与服务端进行高效、灵活的数据交互...

    httpclient获取目标网站内容,get、post方式(可运行)

    在Java编程中,Apache HttpClient库是一个非常常用的工具,用于执行HTTP请求,如GET和POST,以获取或提交网络上的数据。HttpClient提供了丰富的功能,包括设置请求头、处理重定向、管理连接池等,使得开发者可以高效...

    jquery最全面的ajax例子 ajax post get load 应有尽有

    $.get()和$.post()方法 、 $.getScript()和$.getJson() 、 $.ajax()方法 、 序列化元素 、 jQuery中的Ajax全局事件 这些都有详尽的例子,一看代码,你就能明白jquery里实现ajax是怎么回事了,简单明了。

    RestTemplate的GET方法详解.docx

    RestTemplate是Spring框架中用于处理HTTP客户端操作的重要工具,它提供了多种方法来发送HTTP请求,如GET、POST、PUT等。在本篇文章中,我们将详细探讨两个常用的GET方法:`getForObject()`和`getForEntity()`。 1. ...

    Android-Httpclient_Get_Post

    首先,`HttpClient`是Apache的一个组件,它提供了对HTTP协议的全面支持,包括各种HTTP方法如GET和POST。在Android早期版本中,`HttpClient`是官方推荐的网络通信方式,但在API级别22之后,其已被弃用,取而代之的是`...

    java后端请求HTTP需要用到的jar包及其测试方法(get和post)

    测试HTTP请求的方法通常包括GET和POST两种方式: **GET请求**: 1. 创建HttpClient实例。 2. 创建HttpGet请求对象,设置请求URL。 3. 使用HttpClient的execute方法发送请求并获取HttpResponse。 4. 处理响应,例如...

    httpget for delphixe

    在DelphiXE开发环境中,HTTPGET是一个非常实用的控件,用于执行HTTP协议的基本操作,如GET、POST等。这个控件使得开发者可以方便地从Web服务器获取数据,或者向服务器发送数据,而无需深入了解底层的网络编程细节。...

    apache,httpget,httpclient用到的包

    开发者可以通过创建HttpClient实例,配置连接参数,然后通过这个实例执行HttpGet、HttpPost等请求对象。 以下是一些使用Apache HttpClient进行HTTP请求的基本步骤: 1. **初始化HttpClient**:首先,你需要创建一...

    http相关资料.rar_http post_https POST_http相关资料_post https

    文档"**F4get与post.docx**"可能会详细讲解GET和POST的区别,包括它们在处理数据量、安全性、可缓存性等方面的差异,以及何时选择使用GET或POST。 "**F5HTTP.docx**"则可能全面介绍HTTP协议的各个方面,包括但不...

    jQuery Ajax之$.get()方法和$.post()方法

    总的来说,$.get()和$.post()是jQuery中实现Ajax请求的核心方法,它们极大地简化了与服务器通信的过程,使得前端开发更为便捷。理解并熟练运用这两个方法,对于任何使用jQuery的开发者来说都至关重要。

    发送POST请求的三种方式的php类

    这里我们将详细探讨使用cURL、`file_get_contents`和fsocket三种方法来实现POST请求。 1. cURL(Client URL Library): cURL是PHP中最常用的方法,功能强大且灵活。cURL库提供了丰富的选项来定制HTTP请求,包括...

    jQueryget 方法post方法练习程序.rar

    接下来,`$.post()`方法与`$.get()`类似,但它是用于HTTP POST请求的。POST请求常用于向服务器提交数据,创建新资源或更新已有资源。基本用法如下: ```javascript $.post(url, data, success, dataType); ``` ...

    swift-基于AFNetworking3.0封装的GET和POST请求上传下载

    AFNetworking 3.0 是一个开源的网络库,提供了对HTTP网络请求的全面支持,包括GET、POST、PUT、DELETE等多种HTTP方法。它还支持文件上传、下载、自定义请求头、请求体等高级功能。AFNetworking 3.0对iOS8及以上系统...

Global site tag (gtag.js) - Google Analytics