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的更多相关文章
随机推荐
- list.add(int index, E element)和list.addAll(list1)
List.add(int index, E element): 在列表的指定位置插入指定元素(可选操作).将当前处于该位置的元素(如果有的话)和所有后续元素向右移动(在其索引中加 1). 参数:ind ...
- 死磕Spring之IoC篇 - 解析自定义标签(XML 文件)
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...
- spring boot的 yml和properties的对比
Spring Boot 虽然做了大量的工作来简化配置,但其配置依然是相当的复杂!支持的外部配置方式就有很多种,笔者没有去统计,也许是为了灵活使用吧. application.yml 和 appli ...
- kali 下的邮件发送工具 swaks
kali 下的邮件发送工具 swaks Swaks 是一个功能强大,灵活,可编写脚本,面向事务的 SMTP 测试工具,目前 Swaks 托管在私有 svn 存储库中. 官方项目 http://jetm ...
- 在Arch上使用Fcitx5
目录 卸载Fcitx4 安装Fcitx5 配置 修改环境变量 系统登陆后默认启动Fcitx5输入法 配置主题 最终使用效果 参考文档 我是一个Arch+KDE的用户,所以下面的方法可能不适合所有的Li ...
- 基于OpenSSL的PKI的PKI数字证书系统实现
本篇主要介绍了基于OpenSSL的PKI的PKI数字证书系统实现,利用OpenSSL建立一个CA中心的详细解决方案和建立的具体步骤. 1.PKI数字证书系统设计 PKI数字证书系统主要包括证书颁发机构 ...
- POJ-3436(网络流+最大流+输出路径)
ACM Computer Factory POJ-3436 题目就是一个工厂n个加工机器,每个机器有一个效率w,q个材料入口,q个材料出口,每个口有三个数表示状态,1表示一定有入/出的材料,0表示没有 ...
- 2020年12月-第02阶段-前端基础-CSS Day07
CSS Day07 CSS高级技巧 理解 能说出元素显示隐藏最常见的写法 能说出精灵图产生的目的 能说出去除图片底侧空白缝隙的方法 应用 能写出最常见的鼠标样式 能使用精灵图技术 能用滑动门做导航栏案 ...
- .NET并发编程-反应式编程
本系列学习在.NET中的并发并行编程模式,实战技巧 本小节开始学习反应式编程.本系列保证最少代码呈现量,虽然talk is cheap, show me the code被奉为圭臬,我的学习习惯是,只 ...
- ubantu16与windows下——redis的安装与使用
(1) 打开ubantu16,使用如下命令下载安装包 wget http://download.redis.io/releases/redis-2.8.3.tar.gz (2)解压缩命令: tar ...