表单中的method为get和post的解读

砾滩重载
• 阅读 3715

表单中的method为get和post的解读

解读

form表单中的method方法,其值get/post,对应的http协议中的GET和POST传送方法。即指明的是http协议传送请求报文的方式。

区别:

1、请求方式的语义

GET意指得到资源,是要从服务器上获取资源文件,我们在地址栏输入网址就是一种GET方式的http请求,服务器响应返回给客户端html、css、js、img...等资源。

而POST意指传输,是发送数据给服务器,由服务器获取到数据后,执行后续的业务操作(比如查询数据库...),POST不侧重返回资源给客户端。

2、请求的表现形式。

表单中使用GET方式时,参数都会被追加到action的路径后面,以明文显示,如ManagingKnowledge/main.jsp?fileName=test.md&fileType=.docx

而使用POST的方式,参数都被写在了请求报文的请求头部中,随着请求一起发送到服务器。

3、请求的安全性分析。

很明显,GET方式传输过程中,数据都在url中显示了,那么在传输的过程中就有可能被别人监听请求url或者截取http数据包,这样你的数据(用户名、密码)就被别人给窃取了,所以不安全。像代理服务器等都会把请求url记录到日志中,这样他人就能查看到了。

而POST方式提交的数据,如果别人监听你的请求url是得不到你的数据的,但如果截取了你的数据包,那么你的数据同样还是可以被别人窃取,因此,也是不安全的。

安全是相对性而言,GET的数据在地址栏就显示了,而POST的数据,其实在浏览器的NetWork中监听请求数据包,也可以查看到你的数据。

如果想安全传输数据的话,应该对数据先进行加密处理,然后发送出去。如用户的密码,用RSA加密后存储到数据库中,数据库不应该保存用户的明文密码。(一系列加密技术)或者是用SSL协议,加入secure layer层。

4、传输的数据量。

GET方式由于是地址追加方式,数据量受URL长度限制。

而POST方式可以传输大量数据,都是放在http报文中。

服务器端取出form的数据

表单中的input,排除掉style="display:none;" 或者disabled="disabled" 的input不能传输值到服务器,其余的input,只要设置了name,name其value属性的值都可以传输到服务器中被接收。

服务器接收

String input_value = request.getParament(String name); 就可以获取表单传来的值了。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
4年前
java web开发中需要弄清楚的一些概念
1.getParameter和getAttribute区别rquest.getParameter()获取POST/GET传递的参数值,返回的是String,用于读取提交的表单中的值;rquest.getAttribute()getAttribute是取得jsp中用setAttribute設定的attribute,返回的是Object
Stella981 Stella981
4年前
Linux模拟HTTP请求
一个简单的GET请求使用curl命令可以轻松发起一个HTTP请求:使用GET凡是请求网址curlhttp://www.baidu.com可以使用X选项指定请求方式携带参数的POST请求下面演示一个带头部和参数的POST请求curlXPOST\'http://u
Stella981 Stella981
4年前
Http协议、Tomcat、servlet
HTTP协议Http,超文本传输协议是互联网上最广泛的一种网络协议,所有的www文件都必须遵守这个标准。Http协议由http请求和http响应组成http请求:1.请求行请求方式POST、GET、PUT、DELETE等请求的资源/DemoEE/form.html协议版本http/1.12.请求头cookie浏览器
Wesley13 Wesley13
4年前
PHP 表单
1、一个简单的HTML表单POSt方法包含两个输入字段和一个提交按钮<html<body<formaction"welcome.php"method"post"Name:<inputtype"text"name"name"<brEmail:<inputty
Wesley13 Wesley13
4年前
GET和POST两种基本请求方法的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过requestbody传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自
Stella981 Stella981
4年前
CAS 实现站内单点登录及实现第三方 OAuth、OpenId 登录(二)
一、登录表单<form:form id"loginForm" method"post" commandName"${commandName}" htmlEscape"true"    <form:errors path"" element"em" cssClass"" /    <c:if t
Stella981 Stella981
4年前
JMeter基础:请求参数Parameters 、Body Data的区别
使用Jmeter测试时,很多人不知道请求参数Parameters、BodyData的区别和用途,这里简单介绍下先了解一个接口的基本概念在客户机和服务器之间进行请求响应时,HTTP协议中包括GET和POST两种基本的请求方法,概念上两者的区别是:get:从指定的资源请求数据。post:向指定的资源提交要被处理的数据最直观的表现就是
Stella981 Stella981
4年前
From表单提交的几种方式
<body<formaction"https://my.oschina.net/u/3285916"method"get"name"formOne"id"formId"name:<inputtype"text"name"name"pwd:<inputtyp
Stella981 Stella981
4年前
Django之CBV装饰器,跨站请求伪造,auth认证
CBV加装饰器基于session实现登录deflogin(request):ifrequest.method'POST':usernamerequest.POST.get('username')pwdrequest.POST.get(
Wesley13 Wesley13
4年前
HTTP协议与HTML表单(再谈GET与POST的区别)
作者:darxin(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fmy.csdn.net%2Fdarxin)HTTP的GET/POST方式有何区别?这是一个老生常谈的问题,但老生常谈的问题往往有一些让人误解的结论。本文将带您浅尝HTTP协议,在了解HTTP协议的同时将会展示许多被人们
liam liam
3年前
post接口请求测试,通俗易懂!
GET方法和POST方法传递数据的异同http请求方法get和post是最常被用到的两个方法,get常用于向服务器请求数据,post常用于提交数据给服务器处理。GET方法其实也可以传递少量的数据。但它存在以下问题:1)GET方法不包含body,因此以在URL中拼接字段的方式传递数据,2)GET方法中的URL参数会被显示到地