很久没写博文了,今天就稍分析下表单提交的GET和POST的细节问题
<form method="get"> vs <form method="post">
这两种不同的方式都可以完成同样的事情,就是提交表单,但是在具体环境下,会有很多差异。
用GET提交表单,如果表单的字段比较多,URL比较长,一个比较长的URL通常需要更多的DNS解析时间,有次一个URL长度接近400个字符,在谷歌浏览器打开比较慢,后来把提交方式改为POST提交,页面一点就打开了,这说明缩短了很多的DNS解析时间。
POST提交,比GET更加安全,如果你提交一个表单,包含用户名和密码,如果用户在URL中看到自己的用户名、密码等信息,就会认为这不是很安全的。
POST提交而且可以没有数据长度的限制。
如果一个页面提交到另外一个页面,用POST方式提交,在另外一个页面按F5刷新,就会提示是否重新发送数据,这点对于用户体验来说不是很好的。
刚才说的一个页面,应该不是表单包含在iframe里面,如果表单包含在iframe里面,就又不同了
比如一个页面form.jsp
<iframe src="formdata.html"></iframe>
formdata.html
<form name="rcvForm" action="receivedata.jsp" method="post" target="_blank">
<input type="hidden" name="account" value="xyh"/>
<input type="button" value="提交" onclick="document.rcvForm.submit()"/>
</form>
用户通过提交打开页面receivedata.jsp,就会发现F5刷新下页面,表单参数比如name="account"全部丢失了,没有那个重新发送数据的对话框。
怎么修改,把formdata.html的post改成get
<form action="receivedata.jsp" method="get" target="_blank">
<input type="hidden" name="account" value="xyh"/>
<input type="button" value="提交" onclick="document.rcvForm.submit()"/>
</form>
或者把formdata.html的修改提交方式,把从iframe提交升到form.jsp去提交
<form action="receivedata.jsp" method="get" target="_blank">
<input type="hidden" name="account" value="xyh"/>
<input type="button" value="提交" onclick="window.frames[0].document.form[0].submit();""/>
</form>
分享到:
相关推荐
使用`HttpURLConnection`进行POST请求的流程与GET类似,但有几点不同: 1. 在设置请求方法为`POST`之后,需要使用`setDoOutput(true)`开启输出流。 2. 使用`getOutputStream()`获取输出流,然后写入要发送的数据。...
使用HttpClient模拟GET和POST请求,主要涉及以下几个步骤: 1. 创建HttpClient实例:这是所有操作的基础,通过`HttpClientBuilder`或`HttpClients`类可以创建HttpClient对象。 ```java CloseableHttpClient ...
当客户端发送一个GET或POST请求到Tomcat时,服务器会通过Servlet容器解析请求,然后根据请求方法调用相应的Servlet方法。对于GET请求,Servlet的`doGet()`方法会被调用;而对于POST请求,对应的则是`doPost()`方法。...
这通常涉及以下几个步骤: 1. 客户端构建请求:根据需要,客户端(如浏览器、移动应用或桌面应用)构建一个HTTP请求,指定URL、请求方法(GET或POST)、请求头(如Content-Type设置为application/json)以及请求体...
首先,让我们详细了解GET和POST调用的区别: 1. GET方法:通常用于从服务器获取数据,URL中包含所有请求参数。在谷歌翻译API的GET调用中,翻译内容会编码后附加到API请求的URL上。尽管URL有长度限制(一般浏览器...
选择GET还是POST主要取决于以下几个方面: 1. **安全性**:如果数据包含敏感信息,应选择POST。 2. **数据量**:如果数据量较大,超出URL长度限制,则应选择POST。 3. **缓存**:GET请求可以被浏览器缓存,而POST...
在使用这类工具时,开发者通常会关注以下几个方面: 1. **请求参数配置**:包括URL、请求方法(GET或POST)、HTTP头、请求体等。 2. **响应结果分析**:查看服务器返回的状态码、响应头、响应体,确认请求是否成功...
在实际使用中,该测试程序可能包含以下几个核心组件: 1. 请求构造模块:根据用户输入或预设参数,生成符合HTTP规范的GET或POST请求。 2. 连接管理模块:建立并维护与目标服务器的TCP连接,发送请求并接收响应。 3....
在Python中,有几个模块可以用来执行这些操作,如`urllib`, `urllib2`, `httplib`以及更新后的`http.client`模块(在Python 3中)。我们可以通过这些模块来构建GET和POST请求。 1. **urllib2模块**: - `urllib2....
在Java中,乱码通常出现在以下几个环节: 1. **HTTP请求与响应**:HTTP协议允许服务器和客户端通过Content-Type头指定编码格式。GET和POST请求的参数可能携带非ASCII字符,如果编码不一致,就会导致乱码。解决方法...
- POST:理论上POST请求没有数据大小限制,但实际操作中受服务器和浏览器限制,一般在几MB左右。 4. **幂等性** - GET:幂等性意味着多次相同请求应返回相同结果,不会改变服务器状态。 - POST:非幂等,多次...
在这个"Servlet表单Get和Post方式读取"的主题中,我们将深入探讨如何使用Servlet来接收和处理来自HTML表单的GET和POST请求。 首先,让我们了解GET和POST这两种HTTP方法的基本概念: 1. GET方法:这是HTTP请求中最...
POST请求的数据包含在请求体中,其大小远大于GET请求,可以达到几MB。POST请求的参数不显示在URL上,相对更安全,但并非绝对安全。比如,`http://example.com/login` 接收一个POST请求,其中包含了用户名和密码等...
总结,"php+Ajax(GET&POST)完美实例"涵盖了以下几个核心知识点: 1. PHP设置响应头以处理中文字符。 2. Ajax的GET和POST请求实现。 3. 解决Ajax请求中文乱码问题。 4. PHP接收和发送JSON数据。 5. 结合MySQL数据库...
在实际编程中,选择GET还是POST主要取决于以下几个因素: - 数据量:如果数据量较大,应选择POST,因为GET有长度限制。 - 数据类型:对敏感信息,如密码,应使用POST以隐藏数据。 - 操作性质:如果是读取数据,GET...
在Java中实现HTTPS网络请求,我们需要以下几个步骤: 1. **导入相关库**:Java的HttpURLConnection类是处理HTTP请求的标准API,但默认不支持HTTPS。因此,我们需要导入javax.net.ssl.*包中的相关类来处理SSL连接。 ...
Apache HttpClient库主要由以下几个核心jar包组成: - `httpclient.jar`:包含了HTTP客户端的核心功能,如HTTP请求的构建、执行和响应处理。 - `httpcore.jar`:提供HTTP协议的基本操作,如连接管理和I/O处理,它...
### Spring Boot 中 GET 请求与 POST 请求详解 #### 一、Spring Boot 控制器注解概述 在 Spring Boot 应用程序中,控制器是处理 HTTP 请求的核心组件之一。控制器类主要通过以下几种注解来实现: - **`@...
本篇文章将详细讲解如何在C#中实现POST和GET请求,并结合提供的文件“GD.TY.HttpDemo”进行实例解析。 首先,GET请求是HTTP协议中最简单的一种,用于获取服务器上的资源。在C#中,我们可以使用`HttpClient`类来发送...