JAVAEE_Servlet_11_GetAndPost
Get请求和Post请求
* Get请求 和 Post请求各方面分析
- 什么情况下浏览器发送的是Get请求?
1. 通过浏览器的地址栏输入地址,所访问的URL都是get请求,如果以post定义,那么由于请求与实现的不一致,会返回405错误。
2. 点击链接
3. 表单默认的提交方式
- 什么情况下浏览器发送的是Post请求?
1.只有将“《form action="" method="Post"> </form》”标签的,method属性设置为Post的时候,才是浏览器发送的才是post请求,剩下所有的浏览器请求都是Get请求。
- 什么时候使用Get请求?
1. 请求是为了查找资源,HTML表单数据仅用来帮助搜索。
2. 请求结果无持续性的副作用。
3. 收集的数据以及HTML表单内的输入字段名称的总长不超过1024个字符。
- 什么时候使用Post请求?
1. POST用于创建资源,资源的内容会被编入HTTP请示体的内容中。例如,处理订货表单、在数据库中加入新数据行等。
2. GET方法可能会产生很长的URL,或许会超过某些浏览器与服务器对URL长度的限制,此时使用Post
3. 要传送的数据不是采用7位的ASCII编码。
- Get请求的特点?
1. 请求参数会添加到请求资源路劲的后面,只能添加少量参数(因为请求行只有一行,大约只能存放2K左右的数据)
2. 请求参数会显示在浏览器地址栏,路由器会记录请求地址
- Post请求的特点?
1. 请求参数添加到请求体内容里面,可以添加大量的参数(也解释了为什么浏览器地址栏不能发送post请求,在地址栏里我们只能填写URL,并不能进入到Http包的实体当中)
2. 相对安全,但是,post请求也不会对请求参数进行加密处理(可以使用https协议来保证数据安全)
- Get请求和POST请求的区别?
1. get:
- get请求在请求行上提交数据. 格式:uri? name=value&name=value
- get请求提交方式最终会显示在浏览器地址栏上
- get请求在请求行上提交数据,所以提交的数据有长度限制
- get请求只能提交字符串类型数据。
- get请求的最终结果会被浏览器缓存Cache进行收纳,而post不会
2.post:
- Post请求在请求体中提交数据,相对安全,格式:name=value&name=value
- post请求提交方式最终不会再地址栏中显示
- Post请求在请求体中提交数据,所以提交的数据没有长度限制
- post请求可以提交各种类型数据,包括 视频, 音乐,图片,所以文件上传必须使用post请求
- Post请求不使用缓存机制 no-cache,不会被浏览器缓存收纳。
- Get请求和POST请求如何选择使用?
- 传送数据内容包括敏感数据,必须使用post
- 传送数据格式不是字符串类型数据,必须使用post
- 传送数据很多必须使用post
- 为了修改服务器端资源的时候使用post
- 剩下情况都要使用get。
- get请求一般是从服务器端读取资源,读取的这个资源在短时间内是不会发生变化的,所以get请求最终的结果被浏览器缓存起来了。
- post请求一般是修改服务器端的资源,而每次修改的结果都是不同的,所以没必要将post缓存。
- 浏览器缓存
1. 浏览器将数据缓存之后,缓存的资源是和某个特定的路径缓存在一起的,只要浏览器再发送相同的请求路径,这是时候回去缓存中获取资源,不再访问服务器,利用这种方式降低服务器的压力,提高用户的体验。
2. 但是有时候我们不希望所请求得资源走缓存,希望它走服务器,可以在请求路径后面添加时间戳
例如: http://localhost:8080/prj-servlet-09/loginServlet?timestamp=123456
- 需要保证前端请求方式和后台程序处理方式一致
1.前端的页面发送的请求方式应该和服务器端需要的请求方式一致。
2.服务器端需要get请求,前端就应该发送get请求,服务器端需要post请求,前端就应该发送pst请求。若不一致应该提示错误信息。
JAVAEE_Servlet_11_GetAndPost的更多相关文章
随机推荐
- EasyExcel学习
导入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</a ...
- Linux进程管理工具Supervisor的安装配置
目录 Linux进程管理工具Supervisor的安装配置 简介 安装Python包管理工具 安装Supervisor 配置 配置文件参数说明 配置进程管理 启动supervisor 控制进程 交互终 ...
- 不同浏览器CSS样式不兼容问题
一句话,我想的太复杂了.向朋友请教才了解到,其实只要加个判断即可,首先获取到浏览器的基本信息,像什么版本啊,名称啊.默认语言啊等等,然后根据不同浏览器默认加载不同CSS样式即可,获取浏览器版本的连接如 ...
- Win32API使用技巧 -- 置顶应用
Win32提供了SetForegroundWindow方法可以将应用设置到前台并激活,但是在某些场景下,只调用该接口会返回0,即设置失败.比如如下场景: 当前前台应用为一个全屏的应用,非前台应用的进程 ...
- Static Proxy
0.静态代理 静态代理的实现比较简单,代理类通过实现与目标对象相同的接口,并在类中维护代理对象.通过构造器塞入目标对象,赋值给代理对象,进而执行代理对象实现的接口方法,并实现前拦截,后拦截等所需的业务 ...
- JWT原理及常见攻击方式
JWT的全称是Json Web Token.它遵循JSON格式,将用户信息加密到token里,服务器不保存任何用户信息,只保存密钥信息,通过使用特定加密算法验证token,通过token验证用户身份. ...
- 在windows上安装MySQL数据库注意点及Navicat Premium 15的破解
在windows上安装MySQL数据库 跟随慕课网教程(http://www.imooc.com/wiki/mysqllesson/mysqlwindows.html)下载安装MySQL: 其中注意 ...
- 从代理模式 到 SpringAOP
前言 Spring AOP 就是通过代理模式来实现切面编程的.代理模式用来为其他对象提供一种代理,以控制对这个对象的访问. 代理对象在客户端和目标对象之间起到中介的作用.通过控制对这个对象的访问,可以 ...
- 基于es实现一个简单的搜索引擎
一.什么是es Elasticsearch是一个基于ApacheLucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库.但 ...
- 部署Angular应用到Github pages
https://jeneser.github.io/blog/2017/08/08/angular-deploying-app-github-pages/ Published: August 08, ...