`
小杨学JAVA
  • 浏览: 904126 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

http https get post 的区别,定义/安全性/性能

    博客分类:
  • http
 
阅读更多

转:http://cuishen.iteye.com/blog/2019925

HTTP / HTTPS request 的 get / post 方法的区别: 

A. 定义及安全性的区别: 
refer: 
http://blog.csdn.net/csj50/article/details/5687850 
http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html 

B. 性能区别: 
据Yahoo mail team 说: post方法在AJAX 请求下会被拆分成两个: sending header first, then sending data; 

逆向思维: post的请求如果没有data string,那么性能上应该和get是相同的。 

refer: 
http://developer.yahoo.com/performance/rules.html#ajax_get 

引用
The Yahoo! Mail team found that when using XMLHttpRequest, POST is implemented in the browsers as a two-step process: sending the headers first, then sending data. So it's best to use GET, which only takes one TCP packet to send (unless you have a lot of cookies). The maximum URL length in IE is 2K, so if you send more than 2K data you might not be able to use GET. 

An interesting side affect is that POST without actually posting any data behaves like GET. Based on the HTTP specs, GET is meant for retrieving information, so it makes sense (semantically) to use GET when you're only requesting data, as opposed to sending data to be stored server-side. 



C. 安全性扩展 
据说在https下除了URL中host path (e.g. "https://cuishen.iteye.com/blog/2017537" 中的"cuishen.iteye.com") 部分是明文的,其他任何请求内容/应答都是加密的,所以从这个角度讲: 相对http GET而言,https下的GET方法更安全些,至少黑客在监听信道的时候只能拿到密文; 

但是因为GET方法的URL会出现在浏览器的address bar和history里面(https下也是这样),所以依然是个安全隐患。 

所以说,在四种组合下面,https + post是最安全的组合! 

refer: 
http://stackoverflow.com/questions/499591/are-https-urls-encrypted 
http://www.cnblogs.com/zhuqil/archive/2012/07/23/2604572.html 


-------------------- 
Add some founding: 

尽管AJAX下的https GET请求的URL不会被记录在browser的history里面,但是会被记录在Firefox的memory cache里面: 

try below URL in Firefox: 

Java代码  收藏代码
  1. about:cache?device=memory  


POST方法则不会!! 
So, 在一些安全性要求比较高的场合,还是尽量避免使用GET方法吧! 

分享到:
评论

相关推荐

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

    HTTP中的POST和GET方法是两种最常用于网页开发的数据传输方式,它们在原理和表现形式上存在本质区别。 首先,从原理上看,GET方法通常用于获取资源信息,它通过URL来传递参数,URL全称为资源描述符,表示网络上的一...

    Web应用安全:HTTP协议GET和POST的使用区别.pptx

    - 安全性:GET因数据可见,对隐私保护较差;POST数据不可见,更适合传递敏感信息。 - 缓存和可书签:GET请求可以被缓存和加入书签,POST不能。 - 可更新和可幂等性:GET请求是幂等的,多次执行结果相同;POST不是,...

    HTTP_POST_GET.rar_Http get post_http get_http post_http post ge

    在开发Web应用时,理解这两种请求方式的区别至关重要,因为它们直接影响到应用程序的性能、安全性和用户体验。 通过阅读《HTTP_POST_GET.doc》文档,你可以获得更深入的理论知识和实践案例,帮助你在HTTP协议分析和...

    表单提交中get和post的区别

    例如,假设我们有一个表单,包含一个文本框,名称为“Text”,那么在get方式中,提交的URL将是“getpost.asp?Text=http://leewei.blogchina.com”。而在post方式中,表单内各个字段与其内容将被放置在HTML HEADER内...

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

    POST请求的数据包含在请求体中,对数据大小无限制,比GET更安全,但响应速度相对较慢。 2. **HttpClient使用**:使用HttpClient发送HTTP请求通常涉及以下步骤: - 创建HttpClient对象。 - 创建HttpGet或HttpPost...

    get和post的区别

    ### GET与POST方法的区别 在Web开发中,GET与POST是最常见的两种HTTP请求方式,它们在...综上所述,GET与POST在数据传输、安全性、编码支持等方面有着明显的区别。开发者应根据实际需求选择合适的方法来实现具体功能。

    GET与POST用法

    - **安全性**:由于GET方法将参数暴露在URL中,因此不适合传输敏感信息;POST方法相对更安全。 - **数据大小限制**:GET方法受URL长度限制,因此不适合传输大量数据;而POST方法没有明确的大小限制。 - **缓存机制**...

    QT C++ http get、post 同步异步请求

    在QT框架中,进行HTTP通信通常使用QNetworkAccessManager类,它是QT提供的网络访问模块,可以处理HTTP和FTP协议的请求。...在设计和实现时,应充分考虑线程安全和错误处理,确保程序的稳定性和可靠性。

    get、post、request的区别

    总的来说,理解GET、POST和REQUEST的差异,并在编程中采取适当的验证措施,是确保代码安全性和可靠性的重要步骤。在进行代码审核时,关注这些细节可以有效降低潜在的安全风险,提高应用的健壮性。

    Web应用安全:HTTP协议GET和POST的使用区别文本.docx

    与GET不同,POST请求的数据放在请求的主体部分,不在URL上显示,因此可以携带更多、更复杂的数据,同时也提供了更高的安全性。然而,POST请求不保证幂等性,多次执行可能会产生不同的效果,例如多次提交表单可能会...

    在线PostGet本地版

    5. **请求参数**:在执行POST或GET请求时,需要指定请求参数,包括URL、请求头(如Content-Type,定义了发送的数据类型)以及请求体(POST请求时,用于传递数据到服务器)。 6. **响应查看**:完成请求后,本地服务...

    GET请求和POST请求的区别(详细)

    ### GET请求和POST请求的区别详解 #### 一、概述 HTTP协议定义了多种与服务器进行交互的方法,其中最基本的包括GET、POST、PUT和DELETE。这些方法分别对应于对网络资源的查询、更新、创建和删除操作。GET通常用于...

    C# WebService 客户端 服务器 Get Post

    4. GET与POST的区别: - GET:主要用于获取数据,数据作为URL的一部分进行编码,一般用于查询操作。GET请求的大小有限制,且在浏览器历史记录中可见,安全性较低。 - POST:用于发送数据,数据包含在请求正文中,...

    Http post GET网站

    POST请求的参数不显示在URL上,相对更安全,但并非绝对安全。比如,`http://example.com/login` 接收一个POST请求,其中包含了用户名和密码等登录信息。 在实际编程中,我们可以使用各种编程语言来实现HTTP的GET和...

    GET-AND-POST.rar_ post CSharp _C# GET POST_CSharp post_POST_pos

    7. **安全性与性能**: - GET请求可能会被缓存,而POST请求通常不会。 - POST请求比GET请求更安全,因为数据不在URL中显示,但POST请求可能暴露在HTTP日志中。 综上所述,“GET-AND-POST.rar”资源可能包含了如何...

    pb9 通过http、https协议post

    HTTP用于传输非加密的数据,而HTTPS在HTTP的基础上加入了SSL/TLS加密层,以确保数据传输的安全性。 POST是HTTP协议中的一个方法,常用于向服务器发送数据,比如提交表单或者上传文件。在PB9中,我们可以通过POST...

    post and get

    ### POST与GET方法详解 在Web开发中,`POST`与`GET`...- 正确地使用`GET`与`POST`不仅可以提高程序的安全性,还能提升用户体验。 总之,理解并正确使用`GET`和`POST`请求对于每一个Web开发者来说都是非常重要的技能。

    GET 与 POST 的区别

    对于安全性而言,GET请求不应用于传递敏感信息,因为参数会直接暴露在URL中。 由于GET和POST都是TCP/IP上的TCP连接,所以技术上你可以给GET请求增加request body,或者在POST请求中带上URL参数,尽管这通常不是标准...

    Rust使用 reqwest 发起 GET/POST 异步请求.pdf

    Rust是一种系统编程语言,它注重安全、速度和并发性。reqwest是Rust语言中一个流行的HTTP客户端库,它支持异步编程范式。异步编程允许程序在等待I/O操作(例如网络请求)时继续执行其他任务,而不是阻塞线程。Tokio...

Global site tag (gtag.js) - Google Analytics