`
szh_java
  • 浏览: 79503 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Post和get的区别(详细总结篇)

    博客分类:
  • java
 
阅读更多
很多人都是模模糊糊的知道post和get的区别,到底有什么区别,具体的也说不清楚。根据自己的一点经验有在网上找了很多这方面的知识,总结如下:
1,post/get都是请求服务器,get是发送获取服务器数据的请求;post是发送传递数据的请求。
2,post/get的安全问题:
       1),get传输的数据是在URL里,post是封装在Form表单里。由于浏览器会缓存URL,如果URL里包含敏感数据,那么别的用户就可从历史记录里轻易的读取到这些数据。从这方面来分析get方法存在 严重的安全性问题。
       2),如果从数据传输的过程来分析说post比get安全,是错误的。因为post,get传输数据都是明文传送。用类似httpfox这样的插件都可以看到二者传送的明文数据。
       3),如果从操作动作来看说post比get安全更是严重的错误。因为恰恰相反,不单是字面意思,HTTP规范里,GET用于信息获取,而且应该是安全的和幂等的;POST表示可能修改变服务器上的资源的请求。get是通过指定的URL获取某个资源,是读取操作。不论get多少次被访问的资源的状态不会改变;post是对访问的资源追加数据,每次提交post参与的代码都会被认为这个操作会修改资 源的状态,于是按F5或者刷新页面时会弹出“是否确认重复提交的对话框”。例如:在论坛请求一个帖子的地址,无论刷新多少次,请求多少次都是得到的这个帖子的详细内容,而且帖子本身状态不会因为本次请求有发生任何改变。这样的操作是安全的幂等的。当对这个帖子发表评论时就应该使用post方法了,因为本次请求后资源的状态已经发生改变。
3,post/get请求数据的长度限制
   1),http协议没有对请求数据的长度做限制,也没有对url的长度做限制。实际开发应用中特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。因为get方法传输数据是放在URL里面所以使用GET提交时,传输数据就会受到URL长度的限制。
   2),POST:由于不是通过URL传值,理论上数据不受限。但实际各个WEB服务器会规定对post提交数据大小进行限制,Apache、IIS6都有各自的配置。IIS4最大80k,IIS5最大100k。
分享到:
评论

相关推荐

    HttpClient实现POST GET和文件下载

    接下来,我们将分别讲解HttpClient如何实现GET和POST请求: 1. GET请求: 使用HttpGet类创建GET请求,指定目标URL。例如: ```java HttpGet httpGet = new HttpGet("http://example.com"); CloseableHttpClient...

    j2me Http Get和Post请求总结

    这篇博客文章“j2me Http Get和Post请求总结”主要探讨了如何在J2ME环境中实现这两种请求。 首先,GET请求是HTTP协议中最常见的一种方法,通常用于从服务器获取数据。在J2ME中,我们可以使用`javax.microedition.io...

    java 实现get,post请求

    本篇文章将详细介绍如何在Java中实现GET和POST请求,以及相关的知识点。 首先,我们要了解GET和POST的区别。GET请求通常用于获取资源,其参数附加在URL后面,是可见的,且对数据长度有限制,一般不超过2KB。而POST...

    C# WebService 客户端 服务器 Get Post

    本篇将详细阐述C# WebService客户端和服务器如何利用GET和POST方法进行数据传输。 首先,我们要了解什么是Web Service。Web Service是一种基于互联网的标准协议,它允许不同系统之间的应用程序通过网络共享数据和...

    Android中Https请求get和post

    本篇将详细讲解Android中如何使用HTTPS进行GET和POST请求。 首先,HTTPS基于SSL/TLS协议,提供加密处理、服务器身份验证和消息完整性检查等功能。在Android中,我们通常会用到HttpURLConnection或者第三方库如...

    Express获取get和post传过来的参数

    总结,Express通过`req.query`和`req.body`提供了一种直观的方式来获取GET和POST请求的参数。在实际项目中,我们还需要根据Content-Type正确配置中间件,如`body-parser`和`multer`,以便正确解析不同类型的POST请求...

    javaWEB总结(5):GET与POST请求

    了解GET和POST请求的区别以及如何在Servlet中处理它们,对于Java Web开发者来说至关重要。通过实际的代码测试,你可以更好地掌握这些概念并应用到项目中。在`javaWeb_05`这个压缩包中,应该包含了实现这些功能的源...

    C语言的JSON解析库:cJSON 1.7.15函数说明(含 mongoose ,可用于测试POST和GET请求,纯C实现)

    在本篇文章中,我们将深入探讨cJSON库的主要功能和使用方法,并结合mongoose库,了解如何进行HTTP的POST和GET请求。 1. cJSON库的核心功能: - 创建JSON对象:cJSON库提供了一系列的API,如`cJSON_CreateObject`、...

    PHP socket 构造POST与GET

    本篇将深入探讨如何利用PHP的Socket功能来构造POST和GET请求,以及相关的类和对象。 一、PHP Socket基础 1. PHP的socket_create()函数:这是创建一个Socket的入口点,它接受三个参数,分别是协议族(AF_INET用于...

    C# send post&get

    ### C# 发送 POST 和 GET 请求的实现方法 在 C# 开发中,发送 HTTP 请求(包括 GET 和 POST)是常见的需求之一。本篇文章将基于提供的文件内容介绍如何使用 C# 来发送这两种类型的请求,并获取服务器返回的数据。 ...

    jQuery ajax、post、get、json格式传递数据例子

    本篇文章将深入探讨jQuery中的ajax、post、get方法以及如何使用json格式传递数据。 1. **jQuery的$.ajax()函数** `$.ajax()`是jQuery提供的核心Ajax功能,它可以实现异步数据交互。通过配置各种参数,可以灵活地...

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

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

    Android Get和Post方式访问网络

    总结,GET和POST是Android应用与服务器进行网络通信的两种基本方式,GET适合简单查询,POST适合数据提交。理解并掌握这两者的使用,是Android开发者必备的技能之一。`GetPostTest`类则是一个实践这些概念的实例,...

    c++封装curl,实现get,post,download

    本篇将深入探讨如何在C++中封装libcurl,实现GET、POST请求以及文件下载功能。 首先,我们从`curlpp`这个库开始。`curlpp`是libcurl的一个C++包装器,它提供了更方便、面向对象的API,简化了与libcurl的交互。要...

    Android-retrofit简单封装实现公共参数get和post统一处理

    本篇文章将详细讲解如何对Retrofit进行简单的封装,以实现公共参数在GET和POST请求中的统一处理,以及如何在上传和下载过程中添加进度显示功能。同时,我们还将探讨如何同时提交图片和文本数据。 首先,了解...

    Http学习之使用HttpURLConnection发送post和get请求 android

    本篇文章主要聚焦于使用`HttpURLConnection`类...总结,本文介绍了使用`HttpURLConnection`在Android中发送GET和POST请求的基本步骤,以及需要注意的关键点。理解这些概念有助于开发者在构建网络功能时做出明智的选择。

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

    本篇将详细介绍如何使用HttpClient发送HTTP请求,包括POST和GET方法,同时提供相关的jar包依赖以及Java代码示例,并对关键代码进行注解解释。 一、HttpClient库的引入 在Java项目中,首先需要添加HttpClient的jar包...

    java发http请求(post&get)

    本篇文章将详细介绍如何使用Java实现POST和GET两种HTTP请求方法。 首先,GET请求是最基础的HTTP请求方式,通常用于获取资源。在Java中,我们可以使用`java.net.HttpURLConnection`类来实现GET请求。以下是一个简单...

    http请求,http get请求,http post请求

    本篇将详细探讨HTTP请求,特别是GET和POST请求,以及如何通过源码工具进行操作。 一、HTTP请求基础 HTTP请求是由客户端(如浏览器)发起,向服务器请求资源的动作。它由请求行、请求头、空行和请求体四部分组成。...

    pythonget和post数据实现.pdf

    本篇文章将详细讲解如何使用Python的`urllib`库来实现`GET`和`POST`请求。 首先,`GET`方法通常用于从服务器检索信息,它将参数附加到URL后面。在提供的示例中,我们创建了一个字典`params`,包含键值对`{'programe...

Global site tag (gtag.js) - Google Analytics